File: /home/xedaptot/360.naniguide.com/backend/js/function.js
(function($) {
"use strict"; // Start of use strict
var wizard_tour = null, wizard_tour_open = false, wizard_steps = [];
var drag_slider = false, drag_slider_start=0, drag_slider_end=0;
var args_callout = [];
var interval_adjust_embed_helpers_all, count_adjust_embed_helpers_all=0;
$(document).ajaxSend(function () {
try {
Pace.start();
} catch (e) {}
})
$(document).ajaxStop(function () {
try {
Pace.stop();
} catch (e) {}
})
window.login = function () {
$('#username_l').removeClass("error-highlight");
$('#password_l').removeClass("error-highlight");
try {
$('#username_l').tooltipster('destroy');
} catch (e) {}
try {
$('#password_l').tooltipster('destroy');
} catch (e) {}
var username = $('#username_l').val();
var password = $('#password_l').val();
var btn_label = $('#btn_login').html();
$('#btn_login').html('<i class="fas fa-circle-notch fa-spin"></i>');
$('#btn_login').addClass("disabled");
var complete = true;
if($('#captcha_code').length && autologin==0) {
if($('#captcha_code').val()!='') {
$('#captcha_code').removeClass("error-highlight");
var valid_captcha = window.captcha.valid($('input[id="captcha_code"]').val());
if(!valid_captcha) {
$('#captcha_code').addClass("error-highlight");
complete = false;
}
} else {
$('#captcha_code').addClass("error-highlight");
complete = false;
}
}
if(username=='') {
$('#username_l').addClass("error-highlight");
complete = false;
}
if(password=='') {
$('#password_l').addClass("error-highlight");
complete = false;
}
var remember_me = $('#remember_l').is(':checked') ? 1 : 0;
if(complete) {
$.ajax({
url: "ajax/login.php",
type: "POST",
data: {
username_svt: username,
password_svt: password,
remember_svt: remember_me,
autologin: autologin
},
async: true,
success: function (json) {
var rsp = JSON.parse(json);
switch(rsp.status) {
case 'ok':
location.href="index.php";
break;
case '2fa':
$('#modal_check_login_2fa').modal('show');
setTimeout(function() {
$('#code_check_2fa').focus();
},300);
$('#btn_login').html(btn_label);
$('#btn_login').removeClass("disabled");
break;
case 'blocked':
$('#username_l').addClass("error-highlight");
$('#username_l').tooltipster({
theme: 'tooltipster-error',
animation: 'grow',
delay: 0,
arrow: true,
autoClose: false,
trigger: function() {},
content: $('<span style="color:red;">'+window.login_labels.account_locked+'</span>')
});
$('#username_l').tooltipster('show');
setTimeout(function() {
$('#username_l').tooltipster('hide', function() {
$('#username_l').tooltipster('destroy');
});
},5000);
$('#btn_login').html(btn_label);
$('#btn_login').removeClass("disabled");
break;
default:
if(rsp.status==='incorrect_username') {
$('#username_l').addClass("error-highlight");
$('#username_l').tooltipster({
theme: 'tooltipster-error',
animation: 'grow',
delay: 0,
arrow: true,
autoClose: false,
trigger: null,
content: $('<span style="color:red;">'+window.login_labels.invalid_username+'</span>')
});
$('#username_l').tooltipster('show');
setTimeout(function() {
$('#username_l').tooltipster('hide', function() {
$('#username_l').tooltipster('destroy');
});
},5000);
}
if(rsp.status==='incorrect_password') {
$('#password_l').addClass("error-highlight");
$('#password_l').tooltipster({
theme: 'tooltipster-error',
animation: 'grow',
delay: 0,
arrow: true,
autoClose: false,
trigger: null,
content: $('<span style="color:red;">'+window.login_labels.invalid_password+'</span>'),
});
$('#password_l').tooltipster('show');
setTimeout(function() {
$('#password_l').tooltipster('hide', function() {
$('#password_l').tooltipster('destroy');
});
},5000);
}
$('#btn_login').html(btn_label);
$('#btn_login').removeClass("disabled");
break;
}
},
error: function() {
$('#btn_login').html(btn_label);
$('#btn_login').removeClass("disabled");
}
});
} else {
$('#btn_login').html(btn_label);
$('#btn_login').removeClass("disabled");
}
}
window.session_register = function () {
$('#modal_register button').addClass("disabled");
$.ajax({
url: "ajax/session_register.php",
type: "POST",
async: true,
success: function (json) {
location.href = 'register.php';
}
});
}
window.register_account = function () {
var complete = true;
var username = $('#username_r').val();
var email = $('#email_r').val();
var password = $('#password_r').val();
var password2 = $('#password2_r').val();
if(username=='') {
complete = false;
$('#username_r').addClass("error-highlight");
} else {
$('#username_r').removeClass("error-highlight");
}
if(email=='') {
complete = false;
$('#email_r').addClass("error-highlight");
} else {
$('#email_r').removeClass("error-highlight");
}
if(password=='') {
complete = false;
$('#password_r').addClass("error-highlight");
} else {
$('#password_r').removeClass("error-highlight");
}
if(password2=='') {
complete = false;
$('#password2_r').addClass("error-highlight");
} else {
$('#password2_r').removeClass("error-highlight");
}
if((password!='') && (password2!='')) {
if(password!=password2) {
complete = false;
$('#password_r').addClass("error-highlight");
$('#password2_r').addClass("error-highlight");
} else {
$('#password_r').removeClass("error-highlight");
$('#password2_r').removeClass("error-highlight");
}
}
if($('#captcha_code').length && auto_register!=1) {
if($('#captcha_code').val()!='') {
$('#captcha_code').removeClass("error-highlight");
var valid_captcha = window.captcha.valid($('input[id="captcha_code"]').val());
if(!valid_captcha) {
$('#captcha_code').addClass("error-highlight");
complete = false;
}
} else {
$('#captcha_code').addClass("error-highlight");
complete = false;
}
}
if($('#terms_and_conditions').length && auto_register!=1) {
if($('#terms_and_conditions').is(':checked')) {
$('#terms_and_conditions').removeClass("error-highlight");
} else {
$('#terms_and_conditions').addClass("error-highlight");
complete = false;
}
}
if(complete) {
$('#btn_register').addClass("disabled");
$.ajax({
url: "ajax/register.php",
type: "POST",
data: {
username_svt: username,
email_svt: email,
password_svt: password,
social_provider: social_provider,
social_identifier: social_identifier
},
async: true,
success: function (json) {
var rsp = JSON.parse(json);
if(rsp.status=='ok') {
var id_user = rsp.id_user;
if(parseInt(rsp.validate_email)==1) {
$.ajax({
url: "ajax/send_email.php",
type: "POST",
data: {
type: 'activate',
email: email,
id_user: id_user
},
timeout: 15000,
async: true,
success: function (json) {
var rsp = JSON.parse(json);
if (rsp.status == "ok") {
$('#modal_activate').modal("show");
} else {
alert(rsp.msg);
}
},
error: function(){},
});
} else {
$.ajax({
url: "ajax/send_email.php",
type: "POST",
data: {
type: 'notify',
id_user: id_user
},
timeout: 15000,
async: true,
success: function () {
location.href="index.php";
},
error: function(){
location.href="index.php";
},
});
}
} else {
alert(rsp.msg);
$('#btn_register').removeClass("disabled");
}
},
error: function () {
alert(window.register_labels.error_msg);
$('#btn_register').removeClass("disabled");
}
});
}
}
window.close_modal_activation = function () {
$('#modal_activate').modal("hide");
location.href="login.php";
}
window.send_verification_code = function() {
var email = $('#email_f').val();
if(email=='') {
$('#email_f').addClass("error-highlight");
} else {
$('#btn_forgot_code').addClass('disabled');
$.ajax({
url: "ajax/send_email.php",
type: "POST",
data: {
type: 'forgot',
email: email
},
timeout: 15000,
async: true,
success: function (json) {
var rsp = JSON.parse(json);
if (rsp.status == "ok") {
alert(window.login_labels.check_msg);
} else {
alert(rsp.msg);
$('#btn_forgot_code').removeClass('disabled');
}
},
error: function(){
alert(window.login_labels.error_msg);
$('#btn_forgot_code').removeClass('disabled');
},
});
}
}
window.change_password_forgot = function() {
var complete = true;
var forgot_code = $('#forgot_code').val();
var password = $('#password_f').val();
var password2 = $('#repeat_password_f').val();
if(forgot_code=='') {
complete = false;
$('#forgot_code').addClass("error-highlight");
} else {
$('#forgot_code').removeClass("error-highlight");
}
if(password=='') {
complete = false;
$('#password_f').addClass("error-highlight");
} else {
$('#password_f').removeClass("error-highlight");
}
if(password2=='') {
complete = false;
$('#repeat_password_f').addClass("error-highlight");
} else {
$('#repeat_password_f').removeClass("error-highlight");
}
if((password!='') && (password2!='')) {
if(password!=password2) {
complete = false;
$('#password_f').addClass("error-highlight");
$('#repeat_password_f').addClass("error-highlight");
} else {
$('#password_f').removeClass("error-highlight");
$('#repeat_password_f').removeClass("error-highlight");
}
}
if(complete) {
$.ajax({
url: "ajax/change_password_forgot.php",
type: "POST",
data: {
forgot_code: forgot_code,
password: password,
},
async: true,
success: function (json) {
var rsp = JSON.parse(json);
if (rsp.status == "ok") {
alert(window.login_labels.password_success);
location.href = 'login.php';
} else {
alert(rsp.msg);
}
}
});
}
}
window.logout = function () {
$.ajax({
url: "ajax/logout.php",
type: "POST",
async: true,
success: function (json) {
location.href="login.php";
}
});
}
window.get_customers_stats = function() {
$.ajax({
url: "ajax/get_customers_stats.php",
type: "POST",
data: {},
async: true,
success: function (json) {
var rsp = JSON.parse(json);
$('#num_customers_active').html(rsp.count_customers_active);
$('#num_customers_total span').html(rsp.count_customers_total);
$('#free_plans').html(rsp.free_plans);
$('#last_registered').html(rsp.last_registered);
$('#recurring_month').html(rsp.recurring_month);
var html_subscriptions = '';
jQuery.each(rsp.subscriptions, function(index, subscription) {
var plan = subscription.plan;
var active_users = subscription.active_users;
var perc = subscription.percentage_active_users;
html_subscriptions += '<div><h4 style="margin-bottom:1px;" class="small font-weight-bold">'+plan+' <span class="float-right">'+active_users+'</span></span></h4>\n' +
' <div class="progress mb-2">\n' +
' <div class="progress-bar bg-primary" role="progressbar" style="width: '+perc+'%" aria-valuenow="'+perc+'" aria-valuemin="0" aria-valuemax="100"></div>\n' +
' </div></div>';
});
$('#subscriptions_list').html(html_subscriptions);
}
});
}
window.get_dashboard_stats = function (id_vt) {
$('#list_visitors i').show();
$.ajax({
url: "ajax/get_dashboard_stats.php",
type: "POST",
data: {
id_user: window.id_user,
id_virtualtour: id_vt
},
async: true,
success: function (json) {
var rsp = JSON.parse(json);
$('#num_rooms').html(rsp.count_rooms);
$('#num_vt_rooms span').html(rsp.count_vt_rooms);
$('#num_markers').html(rsp.count_markers);
$('#num_vt_markers span').html(rsp.count_vt_markers);
$('#num_pois').html(rsp.count_pois);
$('#num_vt_pois span').html(rsp.count_vt_pois);
$('#num_measures').html(rsp.count_measures);
$('#num_vt_measures span').html(rsp.count_vt_measures);
$('#num_slideshows').html(rsp.count_slideshows);
$('#num_vt_slideshows span').html(rsp.count_vt_slideshows);
$('#num_video360').html(rsp.count_video360);
$('#num_vt_video360 span').html(rsp.count_vt_video360);
$('#num_video_projects').html(rsp.count_video_projects);
$('#num_vt_video_projects span').html(rsp.count_vt_video_projects);
$('#total_visitors').html(rsp.total_visitors);
$('#total_online_visitors').html(rsp.total_online_visitors);
if(id_vt===null) {
if(rsp.count_virtual_tours==0) {
$('#list_visitors i').hide();
$('#no_vt_msg').show();
}
$('#num_virtual_tours').html(rsp.count_virtual_tours);
var visitors = rsp.visitors;
var online_visitors = rsp.online_visitors;
var html_visitors = "";
var d_count = 1;
var number_of_pages = Math.ceil(rsp.count_virtual_tours/10);
jQuery.each(visitors, function(index, visitor) {
var vt_id = visitor.id;
var vt_name = visitor.name;
var count = visitor.count;
var perc = count / rsp.total_visitors * 100;
perc = Math.round(perc);
var page = Math.ceil(d_count / 10);
d_count++;
html_visitors += '<div class="d_pages d_page_'+page+'"><h4 style="margin-bottom:1px;" class="small font-weight-bold"><a href="index.php?p=statistics&id_vt='+vt_id+'">'+vt_name+'</a> <span class="float-right"><i class="fas fa-chart-line"></i> <b id="count_visitors_'+vt_id+'">'+count+'</b> <span id="online_visitors_'+vt_id+'"><i class="fas fa-eye"></i> <span>-</span></span></span></h4>\n' +
' <div class="progress mb-2">\n' +
' <div id="perc_visitors_'+vt_id+'" class="progress-bar bg-primary" role="progressbar" style="width: '+perc+'%" aria-valuenow="'+perc+'" aria-valuemin="0" aria-valuemax="100"></div>\n' +
' </div></div>';
});
if(html_visitors!='') {
if($('#list_visitors').html().includes('no_vt_msg')) {
$('#list_visitors').html(html_visitors).promise().done(function() {
jQuery.each(online_visitors, function(index, online_visitor) {
var vt_id = online_visitor.id;
var count = online_visitor.count;
$('#online_visitors_'+vt_id+' span').html(count);
if(count>0) {
$('#online_visitors_'+vt_id).css('color','#4e73df');
} else {
$('#online_visitors_'+vt_id).css('color','black');
}
});
$('#list_visitors').twbsPagination({
totalPages: number_of_pages,
visiblePages: 10,
hideOnlyOnePage: true,
first: '<<',
prev: '<',
next: '>',
last: '>>',
onPageClick: function (event, page) {
$('.d_pages').hide();
$('.d_page_'+page).show();
}
});
});
} else {
jQuery.each(visitors, function(index, visitor) {
var vt_id = visitor.id;
var count = visitor.count;
var perc = count / rsp.total_visitors * 100;
perc = Math.round(perc);
$('#count_visitors_'+vt_id).html(count);
$('#perc_visitors_'+vt_id).css('width',perc+'%');
$('#online_visitors_'+vt_id).css('color','rgb(133, 135, 150)');
$('#online_visitors_'+vt_id+' span').html('-');
});
jQuery.each(online_visitors, function(index, online_visitor) {
var vt_id = online_visitor.id;
var count = online_visitor.count;
if(count>0) {
$('#online_visitors_'+vt_id).css('color','#4e73df');
$('#online_visitors_'+vt_id+' span').html(count);
} else {
$('#online_visitors_'+vt_id).css('color','rgb(133, 135, 150)');
$('#online_visitors_'+vt_id+' span').html('-');
}
});
}
}
$('#disk_space_used button').css('opacity',1);
} else if(id_vt==='all') {
$('#num_virtual_tours').html(rsp.count_virtual_tours);
} else {
$('#disk_space_used button').css('opacity',1);
}
}
});
};
window.get_disk_space_stats = function (id_vt,id_user_s) {
$('#disk_space_used').html('<i class="fas fa-circle-notch fa-spin"></i>');
var id_user_t=id_user_s;
if(id_user_t===null) id_user_t=window.id_user;
$.ajax({
url: "ajax/get_disk_space_stats.php",
type: "POST",
data: {
id_user: id_user_t,
id_virtualtour: id_vt
},
async: true,
success: function (json) {
var rsp = JSON.parse(json);
$('#disk_space_used').html(rsp.disk_space_used);
}
});
};
window.get_disk_space_original = function () {
$('#disk_space_original').html('<i class="fas fa-circle-notch fa-spin"></i>');
$.ajax({
url: "ajax/get_disk_space_original.php",
type: "POST",
data: {
id_user: window.id_user,
id_virtualtour: window.id_virtualtour
},
async: true,
success: function (json) {
var rsp = JSON.parse(json);
$('#disk_space_original').html(rsp.disk_space_used);
}
});
};
window.get_disk_size_room = function () {
$('#disk_space_original').html('<i class="fas fa-circle-notch fa-spin"></i>');
$('#disk_space_compressed').html('<i class="fas fa-circle-notch fa-spin"></i>');
$('#disk_space_multires').html('<i class="fas fa-circle-notch fa-spin"></i>');
$('#disk_space_total').html('<i class="fas fa-circle-notch fa-spin"></i>');
$.ajax({
url: "ajax/get_disk_space_room.php",
type: "POST",
data: {
id_user: window.id_user,
id_virtualtour: window.id_virtualtour,
id_room: window.id_room
},
async: true,
success: function (json) {
var rsp = JSON.parse(json);
$('#disk_space_original').html(rsp.disk_space_original);
$('#disk_space_compressed').html(rsp.disk_space_compressed);
$('#disk_space_multires').html(rsp.disk_space_multires);
$('#disk_space_total').html(rsp.disk_space_total);
}
});
};
window.get_uploaded_file_size_stats = function (id_user_s) {
$('#disk_space_used_uploaded').html('<i class="fas fa-circle-notch fa-spin"></i>');
var id_user_t=id_user_s;
if(id_user_t==null) id_user_t=window.id_user;
$.ajax({
url: "ajax/get_uploaded_file_size_stats.php",
type: "POST",
data: {
id_user: id_user_t
},
async: true,
success: function (json) {
var rsp = JSON.parse(json);
$('#disk_space_used_uploaded').html(rsp.disk_space_used);
}
});
};
window.get_virtual_tours = function (id_category,id_user_sel) {
$.ajax({
url: "ajax/get_virtual_tours.php",
type: "POST",
data: {
id_user: window.id_user,
id_category: id_category,
id_user_f: id_user_sel
},
async: true,
success: function (json) {
var rsp = JSON.parse(json);
parse_virtual_tour_list(rsp.vt_list,rsp.categories,id_category,rsp.users,id_user_sel,rsp.aws_s3_enabled);
if(location.href.includes('edit_user')) {
if(rsp.vt_list.length==0) {
$('.nav-link[href="#vt_list_tab"]').addClass('disabled');
}
$('#vt_num').html(rsp.vt_list.length);
}
}
});
};
window.get_maps = function () {
$.ajax({
url: "ajax/get_maps.php",
type: "POST",
data: {
id_virtualtour: window.id_virtualtour
},
async: true,
success: function (json) {
var rsp = JSON.parse(json);
var maps = rsp.maps;
var permissions = rsp.permissions;
parse_map_list(maps,permissions);
}
});
};
window.get_rooms = function (id_virtualtour,p) {
$.ajax({
url: "ajax/get_rooms.php",
type: "POST",
data: {
id_virtualtour: id_virtualtour
},
async: true,
success: function (json) {
var rsp = JSON.parse(json);
window.rooms = rsp.rooms;
var permissions = rsp.permissions;
switch(p) {
case 'list':
parse_room_list(window.rooms,permissions);
break;
case 'marker':
parse_room_marker(window.rooms);
break;
case 'measure':
parse_room_measure(window.rooms);
break;
case 'poi':
parse_room_poi(window.rooms);
break;
case 'map':
get_option_rooms_target('room_default',0,window.id_room_default,null,null);
break;
case 'presentation':
get_presentation(id_virtualtour);
break;
}
}
});
};
window.get_rooms_menu_list = function (id_virtualtour) {
$.ajax({
url: "ajax/get_rooms_menu_list.php",
type: "POST",
data: {
id_virtualtour: id_virtualtour,
language: window.selected_language
},
async: true,
success: function (json) {
var rsp = JSON.parse(json);
parse_rooms_menu_list(rsp);
}
});
};
window.get_presentation = function (id_virtualtour) {
$.ajax({
url: "ajax/get_presentation.php",
type: "POST",
data: {
id_virtualtour: id_virtualtour
},
async: true,
success: function (json) {
var rsp = JSON.parse(json);
array_presentation = rsp.presentation;
parse_presentation_list();
if(parseInt(rsp.add)==0) {
$('#btn_add_presentation_room').addClass('disabled');
}
}
});
};
window.get_map = function (id_virtualtour,id_map,first_time) {
window.map_points = [];
if(first_time) {
$('#msg_load_map').show();
}
$.ajax({
url: "ajax/get_map.php",
type: "POST",
data: {
id_virtualtour: id_virtualtour,
id_map: id_map,
map_type: window.map_type
},
async: true,
success: function (json) {
var rsp = JSON.parse(json);
switch (window.map_type) {
case 'floorplan':
if(rsp.map!="") {
window.map_points = rsp.map_points;
window.id_map_sel = rsp.id_map;
if(first_time) {
var tmpImg = new Image();
tmpImg.src = rsp.map;
tmpImg.onload = function() {
$('#msg_load_map').hide();
$('#map_image').attr('src',rsp.map);
$('#preview_image img').attr('src',rsp.map);
$('#preview_image').show();
parse_map_points(window.map_points);
if(rsp.all_points) {
$('#btn_add_point').prop("disabled",true);
$('#btn_add_point').css('opacity',0.3);
} else {
$('#btn_add_point').prop("disabled",false);
$('#btn_add_point').css('opacity',1);
}
setTimeout(function() {
$('#map_compass').show();
},500);
};
} else {
parse_map_points(window.map_points);
if(rsp.all_points) {
$('#btn_add_point').prop("disabled",true);
$('#btn_add_point').css('opacity',0.3);
} else {
$('#btn_add_point').prop("disabled",false);
$('#btn_add_point').css('opacity',1);
}
}
}
break;
case 'map':
jQuery.each(window.map_markers, function(index,marker) {
window.map_tour_l.removeLayer(marker);
});
window.map_points = rsp.map_points;
window.id_map_sel = rsp.id_map;
setTimeout(function() {
parse_map_points_l(window.map_points,first_time);
},100);
if(rsp.all_points) {
$('#btn_add_point').prop("disabled",true);
$('#btn_add_point').css('opacity',0.3);
} else {
$('#btn_add_point').prop("disabled",false);
$('#btn_add_point').css('opacity',1);
}
break;
}
}
});
};
window.get_globe_map = function (id_globe,first_time) {
window.map_points = [];
$.ajax({
url: "ajax/get_globe.php",
type: "POST",
data: {
id_globe: id_globe
},
async: true,
success: function (json) {
jQuery.each(window.map_markers, function(index,marker) {
window.map_globe_l.removeLayer(marker);
});
var rsp = JSON.parse(json);
window.map_points = rsp.map_points;
parse_map_points_g(window.map_points,first_time);
if(rsp.all_points) {
$('#btn_add_point').prop("disabled",true);
$('#btn_add_point').css('opacity',0.3);
} else {
$('#btn_add_point').prop("disabled",false);
$('#btn_add_point').css('opacity',1);
}
}
});
};
window.preview_vt = function(id,container_h,id_room) {
$('.toolbar_preview_buttons').hide();
$('.toolbar_preview_loading').removeClass('hidden');
$.ajax({
url: "ajax/get_code.php",
type: "POST",
data: {
id_virtualtour: id
},
async: true,
success: function (json) {
var rsp = JSON.parse(json);
var code = rsp.code;
if(code!="") {
if(rsp.count_rooms>0 || rsp.external==1) {
if(id_room==0) {
var link = '../viewer/index.php?nostat=1&ignore_embedded=1&code='+code;
} else {
var link = '../viewer/index.php?nostat=1&ignore_embedded=1&code='+code+'&room='+id_room;
}
$('#msg_no_room').hide();
$('#iframe_div').show();
$("#iframe_div").html("<iframe allow='accelerometer; camera; display-capture; fullscreen; geolocation; gyroscope; magnetometer; microphone; midi; xr-spatial-tracking;' " +
"width=\"100%\" height=\""+container_h+"px\" frameborder=\"0\" scrolling=\"no\" " +
"marginheight=\"0\" marginwidth=\"0\" " +
"src=\""+link+"\"" +
"></iframe>");
$('#toolbar_preview').show();
$('#iframe_div iframe').attr('height',container_h+'px');
} else {
$('#msg_no_room').show();
$('#iframe_div').hide();
}
}
}
});
}
window.add_map_point = function (top,left) {
window.adding_map_point = false;
$('#btn_add_map_point').addClass('disabled');
var id_room = $('#room_select option:selected').attr('id');
if(window.map_type=='map') {
var all_room_exif = $('#all_room_exif').is(':checked') ? 1 : 0;
var center = window.map_tour_l.getCenter();
var lat = center.lat;
var lon = center.lng;
} else {
var all_room_exif = 0;
var lat = null;
var lon = null;
}
$.ajax({
url: "ajax/add_map_point.php",
type: "POST",
data: {
id_virtualtour: window.id_virtualtour,
id_room: id_room,
id_map: window.id_map_sel,
map_type: window.map_type,
lat: lat,
lon: lon,
top: top,
left: left,
all_room_exif: all_room_exif
},
async: true,
success: function (json) {
var rsp = JSON.parse(json);
if (rsp.status == "ok") {
window.id_room_point_sel = parseInt(rsp.id_room_point_sel);
sessionStorage.setItem('add_point','1');
if(window.map_type=='map') {
var zoom = window.map_tour_l.getZoom();
sessionStorage.setItem('zoom',zoom);
$('#modal_add_map_point').modal('hide');
}
window.map_need_save = false;
save_map_settings(true);
} else {
$('#btn_add_map_point').removeClass('disabled');
}
}
});
}
window.add_map_point_g = function () {
$('#btn_add_map_point').addClass('disabled');
var id_vt = $('#vt_select option:selected').attr('id');
var center = window.map_globe_l.getCenter();
var lat = center.lat;
var lon = center.lng;
$.ajax({
url: "ajax/add_map_point_g.php",
type: "POST",
data: {
id_vt: id_vt,
id_globe: window.id_globe,
lat: lat,
lon: lon
},
async: true,
success: function (json) {
var rsp = JSON.parse(json);
if (rsp.status == "ok") {
window.id_vt_point_sel = parseInt(rsp.id_vt_point_sel);
sessionStorage.setItem('add_point','1');
var zoom = window.map_globe_l.getZoom();
sessionStorage.setItem('zoom',zoom);
window.globe_need_save = false;
$('#modal_add_map_point').modal('hide');
save_globe(window.id_globe,true);
} else {
$('#btn_add_map_point').removeClass('disabled');
}
}
});
}
window.save_map_settings = function (reload) {
var map_name = $('#map_name').val();
var array_lang = {};
array_lang['name'] = {};
$('.input_lang[data-target-id="map_name"]').each(function() {
var lang = $(this).attr('data-lang');
var value = $(this).val();
array_lang['name'][lang]=value;
});
var point_color = $('#point_color').val();
var point_size = $('#point_size').val();
var width_d = $('#width_d').val();
var width_m = $('#width_m').val();
var north_degree = $('#north_degree').val();
var zoom_level = $('#zoom_level option:selected').attr('id');
var zoom_to_point = ($('#zoom_to_point').is(':checked')) ? 1 : 0;
var default_view = $('#default_view option:selected').attr('id');
var info_link = $('#info_link').val();
var info_type = $('#info_type option:selected').attr('id');
var id_room_default = $('#room_default option:selected').attr('id');
if(map_name!='') {
$('#save_btn .icon i').removeClass('far fa-circle').addClass('fas fa-circle-notch fa-spin');
$('#save_btn').addClass("disabled");
var array_lang_json = JSON.stringify(array_lang);
$.ajax({
url: "ajax/save_map_settings.php",
type: "POST",
data: {
id_map: window.id_map_sel,
map_name: map_name,
point_color: point_color,
point_size: point_size,
north_degree: north_degree,
zoom_level: zoom_level,
zoom_to_point: zoom_to_point,
width_d: width_d,
width_m: width_m,
default_view: default_view,
info_link: info_link,
info_type: info_type,
id_room_default: id_room_default,
array_lang: array_lang_json
},
async: true,
success: function (json) {
var rsp = JSON.parse(json);
if(rsp.status=="ok") {
window.map_need_save = false;
if(reload) {
get_map(id_virtualtour,id_map_sel,false);
$('#btn_add_map_point').removeClass('disabled');
$('#msg_select_point').show();
$('.point_settings').hide();
}
$('#save_btn .icon i').removeClass('fas fa-circle-notch fa-spin').addClass('fas fa-check');
setTimeout(function () {
$('#save_btn .icon i').removeClass('fas fa-check').addClass('far fa-circle');
$('#save_btn').removeClass("disabled");
},1000);
} else {
if(reload) {
get_map(id_virtualtour,id_map_sel,false);
$('#btn_add_map_point').removeClass('disabled');
$('#msg_select_point').show();
$('.point_settings').hide();
}
$('#save_btn .icon i').removeClass('fas fa-circle-notch fa-spin').addClass('fas fa-times');
$('#save_btn').removeClass('btn-success').addClass('btn-danger');
setTimeout(function () {
$('#save_btn .icon i').removeClass('fas fa-times').addClass('far fa-circle');
$('#save_btn').removeClass('btn-danger').addClass('btn-success');
$('#save_btn').removeClass("disabled");
},1000);
}
},
error: function() {
$('#save_btn .icon i').removeClass('fas fa-circle-notch fa-spin').addClass('fas fa-times');
$('#save_btn').removeClass('btn-success').addClass('btn-danger');
setTimeout(function () {
$('#save_btn .icon i').removeClass('fas fa-times').addClass('far fa-circle');
$('#save_btn').removeClass('btn-danger').addClass('btn-success');
$('#save_btn').removeClass("disabled");
},1000);
}
});
}
}
window.save_map_point = function () {
switch(map_type) {
case 'map':
var position = $('#point_pos_lat').val()+','+$('#point_pos_lon').val();
break;
case 'floorplan':
var position = $('#point_pos').val();
break;
}
$('#save_btn .icon i').removeClass('far fa-circle').addClass('fas fa-circle-notch fa-spin');
$.ajax({
url: "ajax/save_map_point.php",
type: "POST",
data: {
id_room: window.id_room_sel,
map_type: window.map_type,
position: position
},
async: true,
success: function (json) {
var rsp = JSON.parse(json);
if(rsp.status=="ok") {
$('#save_btn .icon i').removeClass('fas fa-circle-notch fa-spin').addClass('fas fa-check');
setTimeout(function () {
$('#save_btn .icon i').removeClass('fas fa-check').addClass('far fa-circle');
},1000);
} else {
$('#save_btn .icon i').removeClass('fas fa-circle-notch fa-spin').addClass('fas fa-times');
$('#save_btn').removeClass('btn-success').addClass('btn-danger');
setTimeout(function () {
$('#save_btn .icon i').removeClass('fas fa-times').addClass('far fa-circle');
$('#save_btn').removeClass('btn-danger').addClass('btn-success');
},1000);
}
},
error: function() {
$('#save_btn .icon i').removeClass('fas fa-circle-notch fa-spin').addClass('fas fa-times');
$('#save_btn').removeClass('btn-success').addClass('btn-danger');
setTimeout(function () {
$('#save_btn .icon i').removeClass('fas fa-times').addClass('far fa-circle');
$('#save_btn').removeClass('btn-danger').addClass('btn-success');
$('#save_btn').removeClass("disabled");
},1000);
}
});
}
window.save_globe_point = function () {
var position = $('#point_pos_lat').val()+','+$('#point_pos_lon').val();
$('#save_btn .icon i').removeClass('far fa-circle').addClass('fas fa-circle-notch fa-spin');
$.ajax({
url: "ajax/save_globe_point.php",
type: "POST",
data: {
id_globe: window.id_globe,
id_vt: window.id_vt_sel,
position: position
},
async: true,
success: function (json) {
var rsp = JSON.parse(json);
if(rsp.status=="ok") {
$('#save_btn .icon i').removeClass('fas fa-circle-notch fa-spin').addClass('fas fa-check');
setTimeout(function () {
$('#save_btn .icon i').removeClass('fas fa-check').addClass('far fa-circle');
},1000);
} else {
$('#save_btn .icon i').removeClass('fas fa-circle-notch fa-spin').addClass('fas fa-times');
$('#save_btn').removeClass('btn-success').addClass('btn-danger');
setTimeout(function () {
$('#save_btn .icon i').removeClass('fas fa-times').addClass('far fa-circle');
$('#save_btn').removeClass('btn-danger').addClass('btn-success');
},1000);
}
},
error: function() {
$('#save_btn .icon i').removeClass('fas fa-circle-notch fa-spin').addClass('fas fa-times');
$('#save_btn').removeClass('btn-success').addClass('btn-danger');
setTimeout(function () {
$('#save_btn .icon i').removeClass('fas fa-times').addClass('far fa-circle');
$('#save_btn').removeClass('btn-danger').addClass('btn-success');
$('#save_btn').removeClass("disabled");
},1000);
}
});
}
window.change_all_room_exif = function() {
if($('#all_room_exif').is(':checked')) {
$("#room_select").prop("disabled", true);
$(".selectpicker[data-id='room_select']").addClass("disabled");
$('.preview_room_target').addClass('disabled');
} else {
$("#room_select").prop("disabled", false);
$(".selectpicker[data-id='room_select']").removeClass("disabled");
$('.preview_room_target').removeClass('disabled');
}
$('#room_select').selectpicker('refresh');
}
window.pre_add_map_point = function() {
if(window.map_type=='map') {
add_map_point(0,0);
} else {
$('#modal_add_map_point').modal('hide');
$('#floorplan_add_point_msg').removeClass('d-none');
$('#pointers_div').css('cursor','crosshair');
window.adding_map_point = true;
document.getElementById('pointers_div').addEventListener('click', function(event) {
if(window.adding_map_point) {
var rect = this.getBoundingClientRect();
var left = event.clientX - rect.left;
var top = event.clientY - rect.top;
var point_size = parseInt($('#point_size').val());
top = Math.round(top / ratio_w);
left = Math.round(left / ratio_h);
top = top - (point_size/2);
left = left - (point_size/2);
$('#floorplan_add_point_msg').addClass('d-none');
$('#pointers_div').css('cursor','default');
add_map_point(top,left);
}
});
}
}
function parse_map_points(points) {
var html_points = '',html_map_select = '';
jQuery.each(points, function(index, point) {
var map_id = point.id;
var map_top = point.map_top;
var map_left = point.map_left;
var map_name = point.name;
var point_color = point.point_color;
if(map_top!=null) {
if(point.id_map == window.id_map_sel) {
html_points += '<div id="pointer_'+map_id+'" style="top: '+map_top+'px; left: '+map_left+'px; opacity: 0.3;background-color: '+point_color+';" class="pointer"></div>';
}
} else {
html_map_select += '<option id="'+map_id+'">'+map_name+'</option>';
}
});
try {
$('#room_select').selectpicker('destroy');
} catch (e) {}
$('#room_select').empty();
$('#room_select').html(html_map_select).promise().done(function () {
$('#room_select').selectpicker('refresh');
change_preview_room_image_map(null);
});
$('#pointers_div').empty();
$('#pointers_div').html(html_points).promise().done(function () {
$('.pointer').css('visibility','hidden');
$('.pointer').css('width',window.point_size+'px');
$('.pointer').css('height',window.point_size+'px');
$( ".pointer" ).draggable({
containment: '#pointers_div',
drag: function(event) {
var top = $(this).position().top;
var left = $(this).position().left;
var id = $(this).attr('id').replace('pointer_','');
set_point_map_pos(id,top,left);
click_map_point(id);
},
start: function (event, ui) {
$(this).addClass('dragging');
$(".pointer").css('opacity',0.3);
$(this).css('opacity',1);
var id = $(this).attr('id').replace('pointer_','');
click_map_point(id);
},
stop: function (event, ui) {
$(this).removeClass('dragging');
var id = $(this).attr('id').replace('pointer_','');
click_map_point(id);
save_map_point();
}
});
$('.pointer').click(function (event) {
if (!$(this).hasClass('dragging')) {
var top = $(this).position().top;
var left = $(this).position().left;
$(".pointer").css('opacity',0.3);
$(this).css('opacity',1);
var id = $(this).attr('id').replace('pointer_','');
set_point_map_pos(id,top,left);
click_map_point(id);
}
});
setTimeout(function () {
adjust_points_position();
$('.pointer').css('visibility','visible');
if(window.id_room_point_sel!='') {
$('#pointer_'+window.id_room_point_sel).trigger('click');
}
},100);
});
}
function parse_map_points_l(points,first_time) {
window.map_markers = [];
var html_map_select = '';
var point_size = $('#point_size').val();
if((point_size=='') || (point_size<=0)) {
point_size=20;
}
point_size = parseInt(point_size);
point_size = point_size*2;
var bounds = new L.LatLngBounds();
var points_exist = false;
var lat_new = '', lon_new = '';
var count_point = 0;
jQuery.each(points, function(index, point) {
var id = parseInt(point.id);
var name = point.name;
var lat = point.lat;
var lon = point.lon;
if(lat!=null && lat!='') {
points_exist = true;
lat = parseFloat(lat);
lon = parseFloat(lon);
if(id==parseInt(window.id_room_point_sel)) {
lat_new=lat;
lon_new=lon;
}
var icon = new L.DivIcon({
html: "<div id='map_tour_icon_"+id+"' class='map_tour_icon' style='background-image: url("+point.icon+");'></div>",
iconSize: [point_size, point_size],
iconAnchor: [(point_size/2), (point_size/2)]
});
var marker = L.marker([lat, lon], {
id: id,
icon: icon,
draggable: true,
autoPan: true
});
window.map_markers.push(marker);
marker.on("click", function(e) {
var marker = e.target;
window.marker_sel = marker;
var id = marker.options.id;
click_map_point_l(id);
var position = marker.getLatLng();
var lat = position.lat;
var lon = position.lng;
$('#point_pos_lat').val(lat);
$('#point_pos_lon').val(lon);
});
marker.on("drag", function(e) {
var marker = e.target;
window.marker_sel = marker;
var id = marker.options.id;
click_map_point_l(id);
var position = marker.getLatLng();
var lat = position.lat;
var lon = position.lng;
$('#point_pos_lat').val(lat);
$('#point_pos_lon').val(lon);
});
marker.on("dragend", function(e) {
var marker = e.target;
var id = marker.options.id;
var position = marker.getLatLng();
var lat = position.lat;
var lon = position.lng;
$('#point_pos_lat').val(lat);
$('#point_pos_lon').val(lon);
save_map_point();
});
marker.addTo(window.map_tour_l);
count_point++;
bounds.extend(marker.getLatLng());
} else {
html_map_select += '<option id="'+id+'">'+name+'</option>';
}
});
$('.map_tour_icon').css('width',point_size+'px');
$('.map_tour_icon').css('height',point_size+'px');
$('.map_tour_icon').css('border-color',window.point_color);
try {
$('#room_select').selectpicker('destroy');
} catch (e) {}
$('#room_select').empty();
$('#room_select').html(html_map_select).promise().done(function () {
$('#room_select').selectpicker('refresh');
change_preview_room_image_map(null);
});
if(points_exist && first_time) {
if(window.id_room_point_sel!='') {
var zoom = sessionStorage.getItem('zoom');
if(zoom === null) {
zoom = 14;
} else {
sessionStorage.removeItem('zoom');
}
window.map_tour_l.setView([lat_new, lon_new], zoom);
} else {
window.map_tour_l.fitBounds(bounds, {padding: [50,50]});
if(count_point==1) {
window.map_tour_l.setZoom(14);
}
}
}
if(window.id_room_point_sel!='') {
window.map_tour_l.eachLayer((ml)=>{
if(ml instanceof L.Marker){
var id = parseInt(ml.options.id);
if(id == parseInt(window.id_room_point_sel)) {
window.marker_sel = ml;
click_map_point_l(id);
var position = ml.getLatLng();
var lat = position.lat;
var lon = position.lng;
$('#point_pos_lat').val(lat);
$('#point_pos_lon').val(lon);
}
}
});
}
$('#map_tour_div').hover(function () {
if(!($('#map_tour_div').is(":focus"))) {
$('#map_tour_div').focus();
}
});
}
function parse_map_points_g(points,first_time) {
var html_map_select = '';
var bounds = new L.LatLngBounds();
var points_exist = false;
var lat_new = '', lon_new = '';
var count_point = 0;
jQuery.each(points, function(index, point) {
var id = parseInt(point.id);
var name = point.name;
var lat = point.lat;
var lon = point.lon;
if(lat!=null && lat!='') {
points_exist = true;
lat = parseFloat(lat);
lon = parseFloat(lon);
if(id==parseInt(window.id_vt_point_sel)) {
lat_new=lat;
lon_new=lon;
}
var icon = new L.DivIcon({
html: "<div id='map_globe_icon_"+id+"' class='map_globe_icon'></div>",
iconSize: [10,10]
});
var marker = L.marker([lat, lon], {
id: id,
icon: icon,
draggable: true,
autoPan: true
});
window.map_markers.push(marker);
marker.on("click", function(e) {
var marker = e.target;
window.marker_sel = marker;
var id = marker.options.id;
click_map_point_g(id);
var position = marker.getLatLng();
var lat = position.lat;
var lon = position.lng;
$('#point_pos_lat').val(lat);
$('#point_pos_lon').val(lon);
});
marker.on("drag", function(e) {
var marker = e.target;
window.marker_sel = marker;
var id = marker.options.id;
click_map_point_g(id);
var position = marker.getLatLng();
var lat = position.lat;
var lon = position.lng;
$('#point_pos_lat').val(lat);
$('#point_pos_lon').val(lon);
});
marker.on("dragend", function(e) {
var marker = e.target;
window.marker_sel = marker;
var id = marker.options.id;
var position = marker.getLatLng();
var lat = position.lat;
var lon = position.lng;
$('#point_pos_lat').val(lat);
$('#point_pos_lon').val(lon);
save_globe_point();
});
marker.addTo(window.map_globe_l);
count_point++;
bounds.extend(marker.getLatLng());
} else {
html_map_select += '<option id="'+id+'">'+name+'</option>';
}
});
try {
$('#vt_select').selectpicker('destroy');
} catch (e) {}
$('#vt_select').empty();
$('#vt_select').html(html_map_select).promise().done(function () {
$('#vt_select').selectpicker('refresh');
change_preview_vt_image_map(null);
});
if(points_exist && first_time) {
if(window.id_vt_point_sel!='') {
var zoom = sessionStorage.getItem('zoom');
if(zoom === null) {
zoom = 14;
} else {
sessionStorage.removeItem('zoom');
}
window.map_globe_l.setView([lat_new, lon_new], zoom);
} else {
window.map_globe_l.fitBounds(bounds, {padding: [50,50]});
if(count_point==1) {
window.map_globe_l.setZoom(14);
}
}
}
if(window.id_vt_point_sel!='') {
window.map_globe_l.eachLayer((ml)=>{
if(ml instanceof L.Marker){
var id = parseInt(ml.options.id);
if(id == parseInt(window.id_vt_point_sel)) {
window.marker_sel = ml;
click_map_point_g(id);
var position = ml.getLatLng();
var lat = position.lat;
var lon = position.lng;
$('#point_pos_lat').val(lat);
$('#point_pos_lon').val(lon);
}
}
});
}
$('#map_globe_div').hover(function () {
if(!($('#map_globe_div').is(":focus"))) {
$('#map_globe_div').focus();
}
});
}
window.adjust_point_g = function () {
var point_size = $('#pointer_size').val();
var point_color = $('#pointer_color').val();
var point_border = $('#pointer_border').val();
if(point_size!='') {
$('.map_globe_icon').css('width',point_size+'px');
$('.map_globe_icon').css('height',point_size+'px');
}
$('.map_globe_icon').css('background-color',point_color);
$('.map_globe_icon').css('border-color',point_border);
}
window.change_marker_globe_position = function () {
if(window.marker_sel!=null) {
var lat = $('#point_pos_lat').val();
var lon = $('#point_pos_lon').val();
if((lat!='') && (lon!='')) {
lat = lat.replace(',','.');
lon = lon.replace(',','.');
var newLatLng = new L.LatLng(lat, lon);
window.marker_sel.setLatLng(newLatLng);
save_globe_point();
}
}
}
window.change_marker_map_position = function () {
if(window.marker_sel!=null) {
var lat = $('#point_pos_lat').val();
var lon = $('#point_pos_lon').val();
if((lat!='') && (lon!='')) {
lat = lat.replace(',','.');
lon = lon.replace(',','.');
var newLatLng = new L.LatLng(lat, lon);
window.marker_sel.setLatLng(newLatLng);
save_map_point();
}
}
}
function set_point_map_pos(id,top,left) {
top = Math.round(top / ratio_w);
left = Math.round(left / ratio_h);
$('#point_pos').val(top+","+left);
jQuery.each(window.map_points, function(index, point) {
var id_point = point.id;
if(id==id_point) {
point.map_left = left;
point.map_top = top;
}
});
}
function click_map_point(id) {
if(window.id_room_sel!=id) {
set_room_target_map(id);
$('#btn_delete_point').attr('onclick','modal_delete_map_point('+id+');');
$('#btn_mp_edit_room').attr('href','index.php?p=edit_room&id='+id);
$('#btn_mp_markers').attr('href','index.php?p=markers&id_room='+id);
$('#btn_mp_pois').attr('href','index.php?p=pois&id_room='+id);
$('#msg_select_point').hide();
$('.point_settings').show();
}
window.id_room_sel = id;
}
window.click_map_point_l = function(id) {
if(window.id_room_sel!=id) {
set_room_target_map(id);
$('.map_tour_icon').removeClass('map_tour_icon_active');
$('#map_tour_icon_'+id).addClass('map_tour_icon_active');
$('.map_tour_icon').parent().removeClass('map_tour_icon_top');
$('#map_tour_icon_'+id).parent().addClass('map_tour_icon_top');
$('#btn_delete_point').attr('onclick','modal_delete_map_point('+id+');');
$('#btn_mp_edit_room').attr('href','index.php?p=edit_room&id='+id);
$('#btn_mp_markers').attr('href','index.php?p=markers&id_room='+id);
$('#btn_mp_pois').attr('href','index.php?p=pois&id_room='+id);
$('#msg_select_point').hide();
$('.point_settings').show();
}
window.id_room_sel = id;
}
window.click_map_point_g = function(id) {
if(window.id_vt_sel!=id) {
set_vt_target_map(id);
$('.map_globe_icon').removeClass('map_tour_icon_active');
$('#map_globe_icon_'+id).addClass('map_tour_icon_active');
$('.map_globe_icon').parent().removeClass('map_tour_icon_top');
$('#map_globe_icon_'+id).parent().addClass('map_tour_icon_top');
$('#btn_delete_point').attr('onclick','modal_delete_globe_point('+id+');');
$('#msg_select_point').hide();
$('.point_settings').show();
}
window.id_vt_sel = id;
}
function parse_presentation_list() {
var html = '';
var first_row = true;
var priority_1_old = 0;
window.array_id_rooms = [];
jQuery.each(array_presentation, function(index, presentation) {
var id = presentation.id;
var action = presentation.action;
var room_id = presentation.id_room;
var priority_1 = presentation.priority_1;
if(priority_1_old==0) {
priority_1_old = priority_1;
}
if(!window.array_id_rooms.includes(room_id)) {
window.array_id_rooms.push(room_id);
}
var room_image = presentation.panorama_image;
var room_name = presentation.room_name;
var params = presentation.params;
var panorama_type = presentation.panorama_type;
var video_wait_end = parseInt(presentation.video_wait_end);
var pos = presentation.pos;
var sleep_ms = presentation.sleep;
switch (action) {
case'goto':
if(first_row) {
var mt = 0;
first_row = false;
} else {
var mt = 4;
}
var ml = 0;
var py = 2;
var b_color = 'warning';
var classn = 'p_room';
var priority_click_up = 'change_presentation_priority(1,\'up\','+id+');';
var priority_click_down = 'change_presentation_priority(1,\'down\','+id+');';
switch(panorama_type) {
case 'video':
if(video_wait_end==1) {
var text_append = ' <i class="fas fa-video"></i> <i class="far fa-hand-paper"></i>';
} else {
var text_append = ' <i class="fas fa-video"></i>';
}
break;
default:
var text_append = ' <i class="fas fa-image"></i>';
break;
}
if(pos!='') {
text_append += ' <i class="fas fa-bullseye"></i>';
}
var text = '<i class="far fa-arrow-alt-circle-up"></i> <b>'+room_name+'</b> <i class="far fa-pause-circle"></i> '+sleep_ms+'ms'+text_append;
var html_preview = ' <div class="noselect d-inline-block ml-2 align-middle text-left"><span style="cursor: pointer" onclick="open_preview_presentation('+index+','+array_presentation[index].id_room+');return false;" class="badge badge-secondary d-inline-block"><i class="fas fa-eye"></i> '+window.backend_labels.preview_presentation+'</span></div>\n';
break;
case 'lookAt':
var mt = 1;
var ml = 4;
var py = 1;
var b_color = 'primary';
var classn = 'p_subs p_sub_'+room_id;
var priority_click_up = 'change_presentation_priority(2,\'up\','+id+');';
var priority_click_down = 'change_presentation_priority(2,\'down\','+id+');';
room_image = '';
var text = '<i class="fas fa-bullseye"></i> '+params+' <i class="far fa-pause-circle"></i> '+sleep_ms+'ms';
var html_preview = ' <div class="noselect d-inline-block ml-2 align-middle text-left"><span style="cursor: pointer" onclick="open_preview_presentation('+index+','+array_presentation[index].id_room+');return false;" class="badge badge-secondary d-inline-block"><i class="fas fa-eye"></i> '+window.backend_labels.preview_presentation+'</span></div>\n';
break;
case 'type':
var mt = 1;
var ml = 4;
var py = 1;
var b_color = 'info';
var classn = 'p_subs p_sub_'+room_id;
var priority_click_up = 'change_presentation_priority(2,\'up\','+id+');';
var priority_click_down = 'change_presentation_priority(2,\'down\','+id+');';
room_image = '';
var text = '<i class="far fa-comment-dots"></i> '+params+ ' <i class="far fa-pause-circle"></i> '+sleep_ms+'ms';
var html_preview = '';
break;
}
if(priority_1!=priority_1_old) {
html += '<div onclick="open_modal_p_action('+array_presentation[index-1].id_room+');" style="cursor: pointer" class="card ml-4 mt-1 py-1 bg-info text-white">\n' +
' <div class="card-body" style="padding-top: 0;padding-bottom: 0;">\n' +
' <div class="row">\n' +
' <div class="col-md-12 text-center">\n' +
' <i class="fas fa-plus-circle"></i> <span>'+window.backend_labels.add_action+'</span>\n' +
' </div>\n' +
' </div>\n' +
' </div>\n' +
' </div>';
priority_1_old = priority_1;
}
html += '<div class="'+classn+' noselect card mt-'+mt+' ml-'+ml+' py-'+py+' border-left-'+b_color+'">\n' +
' <div class="card-body" style="padding-top: 0;padding-bottom: 0;">\n' +
' <div class="row">\n' +
' <div class="col-md-10 text-center text-sm-center text-md-left text-lg-left">\n';
if(room_image!='') {
if(window.s3_enabled==1) {
var room_image_url = window.s3_url+'viewer/panoramas/thumb/'+room_image;
} else {
var room_image_url = '../viewer/panoramas/thumb/'+room_image;
}
html += ' <div style="cursor: pointer" onclick="presentation_elem_edit('+index+');" class="d-inline-block align-middle hover_p"><img style="height: 40px;" src="'+room_image_url+'" /></div>\n';
}
html += ' <div style="cursor: pointer" onclick="presentation_elem_edit('+index+');" class="noselect d-inline-block ml-2 align-middle text-left hover_p">'+text+'</div>\n' +
html_preview +
' </div>\n'+
' <div class="col-md-2 align-self-center text-center text-sm-center text-md-right text-lg-right">\n';
html += ' <i onclick="'+priority_click_up+'" class="icon_order fas fa-caret-up"></i> <i onclick="'+priority_click_down+'" class="icon_order fas fa-caret-down"></i>';
html += ' </div>\n' +
' </div>\n' +
' </div>\n' +
' </div>';
if((index==(array_presentation.length-1))) {
if(window.create_content=='1') {
html += '<div onclick="open_modal_p_action('+room_id+');" style="cursor: pointer" class="card ml-4 mt-1 py-1 bg-info text-white">\n' +
' <div class="card-body" style="padding-top: 0;padding-bottom: 0;">\n' +
' <div class="row">\n' +
' <div class="col-md-12 text-center">\n' +
' <i class="fas fa-plus-circle"></i> <span>'+window.backend_labels.add_action+'</span>\n' +
' </div>\n' +
' </div>\n' +
' </div>\n' +
' </div>';
}
}
});
if(window.create_content=='1') {
html += '<div id="btn_add_presentation_room" onclick="open_modal_p_room(null)" style="cursor: pointer" class="card mt-4 py-2 bg-warning text-white">\n' +
' <div class="card-body" style="padding-top: 0;padding-bottom: 0;">\n' +
' <div class="row">\n' +
' <div class="col-md-12 text-center">\n' +
' <i class="fas fa-plus-circle"></i> <span>' + window.backend_labels.add_room + '</span>\n' +
' </div>\n' +
' </div>\n' +
' </div>\n' +
' </div>';
}
$('#presentation_list').html(html).promise().done(function () {
var scrollpos = localStorage.getItem('scrollpos');
if (scrollpos) {
$('#content-wrapper')[0].scrollTo(0, parseInt(scrollpos));
localStorage.removeItem('scrollpos');
}
$('.p_room:first .fa-caret-up').addClass('disabled');
$('.p_room:last .fa-caret-down').addClass('disabled');
jQuery.each(window.array_id_rooms, function(index, id_room) {
$('.p_sub_'+id_room+':first .fa-caret-up').addClass('disabled');
$('.p_sub_'+id_room+':last .fa-caret-down').addClass('disabled');
});
});
}
window.change_presentation_priority = function (priority,direction,id) {
$.ajax({
url: "ajax/change_presentation_priority.php",
type: "POST",
data: {
id_virtualtour: window.id_virtualtour,
id: id,
priority: priority,
direction: direction
},
async: true,
success: function (rsp) {
localStorage.setItem('scrollpos', parseInt(window.scrollY));
location.reload();
}
});
}
window.change_p_action = function() {
var p_action = $('#p_action option:selected').attr('id');
switch (p_action) {
case '0':
$('#div_type').hide();
$('#div_lookAt').hide();
$('#btn_add_p_action').addClass('disabled');
break;
case 'type':
$('#div_type').show();
$('#div_lookAt').hide();
$('#btn_add_p_action').removeClass('disabled');
break;
case 'lookAt':
$('#div_type').hide();
$('#div_lookAt').show();
$('#btn_add_p_action').removeClass('disabled');
init_p_viewer(null,null,null);
break;
}
}
function init_p_viewer(yaw,pitch,hfov) {
$.ajax({
url: "ajax/get_room.php",
type: "POST",
data: {
id: window.id_p_room,
},
async: true,
success: function (rsp) {
var room = JSON.parse(rsp);
if(yaw==null) yaw = room.yaw;
if(pitch==null) pitch = room.pitch;
if(hfov==null) hfov = window.p_hfov;
if(parseInt(room.allow_pitch)==1) {
var minPitch = parseInt(room.min_pitch);
var maxPitch = parseInt(room.max_pitch);
} else {
var minPitch = 0;
var maxPitch = 0;
pitch = 0;
}
if(window.s3_enabled==1) {
var image_url = window.s3_url+'viewer/panoramas/'+room.panorama_image+'?s3=1';
} else {
var image_url = '../viewer/panoramas/'+room.panorama_image;
}
p_viewer = pannellum.viewer('p_lookAt', {
"type": "equirectangular",
"panorama": image_url,
"autoLoad": true,
"showFullscreenCtrl": false,
"showControls": false,
"horizonPitch": parseInt(room.h_pitch),
"horizonRoll": parseInt(room.h_roll),
"hfov": parseInt(hfov),
"minHfov": parseInt(window.p_min_hfov),
"maxHfov": parseInt(window.p_max_hfov),
"yaw": parseFloat(yaw),
"pitch": parseFloat(pitch),
"minPitch": minPitch,
"maxPitch" : maxPitch,
"minYaw": parseInt(room.min_yaw),
"maxYaw" : parseInt(room.max_yaw),
"haov": parseInt(room.haov),
"vaov": parseInt(room.vaov),
"compass": false,
"friction": 1,
"strings": {
"loadingLabel": window.backend_labels.loading+"...",
},
});
p_viewer.on('load', function () {
p_viewer_initialized = true;
adjust_ratio_hfov('p_lookAt',p_viewer,hfov,window.p_min_hfov,window.p_max_hfov);
});
p_viewer.on('animatefinished',function () {
var yaw = parseFloat(p_viewer.getYaw());
var pitch = parseFloat(p_viewer.getPitch());
var hfov = parseInt(p_viewer.getHfov());
$('#div_lookAt p').html(yaw.toFixed(2)+','+pitch.toFixed(2)+' ('+hfov+')');
window.p_params = pitch+','+yaw+','+hfov;
});
}
});
}
window.open_modal_p_room = function (index) {
if(index==null) {
$('#p_sleep_r').val(0);
jQuery.each(window.array_id_rooms, function(index2, id_room) {
$("#p_room option[id='"+id_room+"']").prop("disabled", true);
});
$("#p_room").val($("#p_room :not([disabled]):first").val());
$("#p_room").prop('disabled',false);
$('#p_room').selectpicker('refresh');
change_preview_room_image_presentation(null);
$('#btn_add_p_room').html('<i class="fas fa-plus"></i> '+window.backend_labels.add);
$('#btn_add_p_room').attr('onclick','add_presentation_room();');
$('#p_wait_video_end').prop('checked',false);
var panorama_type = $("#p_room :not([disabled]):first").attr('data-type');
if(panorama_type=='video') {
$('#p_wait_video_end').parent().parent().show();
} else {
$('#p_wait_video_end').parent().parent().hide();
}
$('#btn_delete_p_room').hide();
} else {
jQuery.each(window.array_id_rooms, function(index2, id_room) {
if(array_presentation[index].id_room!=id_room) {
$("#p_room option[id='"+id_room+"']").prop("disabled", true);
}
});
$('#p_sleep_r').val(array_presentation[index].sleep);
$("#p_room").prop('disabled',false);
$('#p_room').selectpicker('refresh');
change_preview_room_image_presentation(null);
$('#btn_remove_p_room').attr('onclick','delete_p_room('+array_presentation[index].id_room+')');
if(parseInt(array_presentation[index].video_wait_end)==1) {
$('#p_wait_video_end').prop('checked',true);
} else {
$('#p_wait_video_end').prop('checked',false);
}
var panorama_type = array_presentation[index].panorama_type;
if(panorama_type=='video') {
$('#p_wait_video_end').parent().parent().show();
} else {
$('#p_wait_video_end').parent().parent().hide();
}
$('#btn_delete_p_room').show();
}
$('#modal_presentation_room').modal('show');
}
window.open_modal_p_action = function (id_room) {
window.id_p_room = id_room;
try {
p_viewer.destroy();
} catch (e) {}
$('#btn_add_p_action').html('<i class="fas fa-plus"></i> '+window.backend_labels.add);
$('#btn_add_p_action').attr('onclick','add_presentation_action();');
$("#p_action").prop('disabled',false);
$('#btn_add_p_action').addClass('disabled');
$('#div_type').hide();
$('#div_lookAt').hide();
$("#p_action option").prop("selected", false);
$("#p_action").val($("#p_action option:first").val());
$('#p_animation').val(1000);
$('#p_sleep_l').val(0);
$('#p_sleep_t').val(0);
$('#p_text').val('');
$('#btn_delete_p_action').hide();
if($('.lang_input_switcher').length) {
$('.lang_input_switcher').each(function() {
var elem_o = $(this).attr('data-elem');
var lang_o = $(this).attr('data-default-lang');
switch_input_language(lang_o,lang_o,elem_o);
});
}
$('.input_lang[data-target-id="p_text"]').val('');
$('#modal_presentation_action').modal('show');
}
window.presentation_elem_edit = function (index) {
window.index_p = index;
window.id_p_room = array_presentation[index].id_room;
if(array_presentation[index].action=='goto') {
$("#p_room option").prop("selected", false);
$("#p_room option[id='"+window.id_p_room+"']").prop("selected", true);
$("#p_room").prop('disabled',true);
$('#btn_add_p_room').html('<i class="fas fa-save"></i> '+window.backend_labels.save);
$('#btn_add_p_room').attr('onclick','edit_presentation_room('+array_presentation[index].id+');');
if(array_presentation[index].pos=='') {
$('#override_pos_presentation').prop('checked',false);
} else {
$('#override_pos_presentation').prop('checked',true);
}
open_modal_p_room(index);
} else {
try {
p_viewer.destroy();
} catch (e) {}
$('#btn_add_p_action').html('<i class="fas fa-save"></i> '+window.backend_labels.save);
$('#btn_add_p_action').attr('onclick','edit_presentation_action('+array_presentation[index].id+');');
$('#btn_add_p_action').removeClass('disabled');
$("#p_action").prop('disabled',true);
$("#p_action option").prop("selected", false);
switch (array_presentation[index].action) {
case "type":
if($('.lang_input_switcher').length) {
$('.lang_input_switcher').each(function() {
var elem_o = $(this).attr('data-elem');
var lang_o = $(this).attr('data-default-lang');
switch_input_language(lang_o,lang_o,elem_o);
});
}
$('.input_lang[data-target-id="p_text"]').val('');
$('#div_type').show();
$('#div_lookAt').hide();
$("#p_action option[id='type']").prop("selected", true);
$('#p_sleep_t').val(array_presentation[index].sleep);
$('#p_text').val(array_presentation[index].text);
jQuery.each(window.array_presentation[index].array_lang, function(index_l,item_lang) {
$('.input_lang[data-target-id="p_text"][data-lang="'+item_lang.language+'"]').val(item_lang.params);
});
break;
case 'lookAt':
$('#div_type').hide();
$('#div_lookAt').show();
$("#p_action option[id='lookAt']").prop("selected", true);
$('#p_animation').val(array_presentation[index].animation);
$('#p_sleep_l').val(array_presentation[index].sleep);
init_p_viewer(array_presentation[index].yaw,array_presentation[index].pitch,array_presentation[index].hfov);
break;
}
$('#btn_remove_p_action').attr('onclick','delete_p_action('+array_presentation[index].id+')');
$('#btn_delete_p_action').show();
$('#modal_presentation_action').modal('show');
}
}
window.add_presentation_action = function () {
$('#modal_presentation_action button').addClass("disabled");
var action = $('#p_action option:selected').attr('id');
var array_lang = {};
switch (action) {
case "type":
var sleep = $('#p_sleep_t').val();
var params = $('#p_text').val();
array_lang['params'] = {};
$('.input_lang[data-target-id="p_text"]').each(function() {
var lang = $(this).attr('data-lang');
var value = $(this).val();
array_lang['params'][lang]=value;
});
break;
case 'lookAt':
var sleep = $('#p_sleep_l').val();
var animation = $('#p_animation').val();
if(animation=='') animation=0;
var params = window.p_params+','+animation;
break;
}
var array_lang_json = JSON.stringify(array_lang);
$.ajax({
url: "ajax/add_presentation_action.php",
type: "POST",
data: {
id_virtualtour: window.id_virtualtour,
id_room: window.id_p_room,
sleep: sleep,
action: action,
params: params,
array_lang: array_lang_json
},
async: true,
success: function (json) {
var rsp = JSON.parse(json);
$('#modal_presentation_action button').removeClass("disabled");
if(rsp.status=='ok') {
$('#modal_presentation_action').modal("hide");
localStorage.setItem('scrollpos', parseInt(window.scrollY));
location.reload();
}
}
});
}
window.edit_presentation_action = function (id) {
$('#modal_presentation_action button').addClass("disabled");
var action = $('#p_action option:selected').attr('id');
var array_lang = {};
switch (action) {
case "type":
var sleep = $('#p_sleep_t').val();
var params = $('#p_text').val();
array_lang['params'] = {};
$('.input_lang[data-target-id="p_text"]').each(function() {
var lang = $(this).attr('data-lang');
var value = $(this).val();
array_lang['params'][lang]=value;
});
break;
case 'lookAt':
var sleep = $('#p_sleep_l').val();
var animation = $('#p_animation').val();
if(animation=='') animation=0;
var params = window.p_params+','+animation;
break;
}
var array_lang_json = JSON.stringify(array_lang);
$.ajax({
url: "ajax/save_presentation_action.php",
type: "POST",
data: {
id: id,
sleep: sleep,
params: params,
array_lang: array_lang_json
},
async: true,
success: function (json) {
var rsp = JSON.parse(json);
$('#modal_presentation_action button').removeClass("disabled");
if(rsp.status=='ok') {
$('#modal_presentation_action').modal("hide");
localStorage.setItem('scrollpos', parseInt(window.scrollY));
location.reload();
}
}
});
}
window.save_presentation = function () {
var auto_presentation_speed = $('#auto_presentation_speed').val();
var presentation_type = $('#presentation_type option:selected').attr('id');
var presentation_video = $('#presentation_video').val();
var presentation_inactivity = $('#presentation_inactivity').val();
var presentation_loop = ($('#presentation_loop').is(':checked')) ? 1 : 0;
var presentation_stop_click = ($('#presentation_stop_click').is(':checked')) ? 1 : 0;
var presentation_stop_id_room = $('#presentation_stop_id_room option:selected').attr('id');
var presentation_view_pois = ($('#presentation_view_pois').is(':checked')) ? 1 : 0;
var presentation_view_measures = ($('#presentation_view_measures').is(':checked')) ? 1 : 0;
$('#save_btn .icon i').removeClass('far fa-circle').addClass('fas fa-circle-notch fa-spin');
$('#save_btn').addClass("disabled");
$.ajax({
url: "ajax/save_presentation.php",
type: "POST",
data: {
id_virtualtour: id_virtualtour,
auto_presentation_speed: auto_presentation_speed,
presentation_type: presentation_type,
presentation_video: presentation_video,
presentation_inactivity: presentation_inactivity,
presentation_loop: presentation_loop,
presentation_stop_click: presentation_stop_click,
presentation_stop_id_room: presentation_stop_id_room,
presentation_view_pois: presentation_view_pois,
presentation_view_measures: presentation_view_measures
},
async: true,
success: function (json) {
var rsp = JSON.parse(json);
if(rsp.status=="ok") {
window.presentation_need_save = false;
$('#save_btn .icon i').removeClass('fas fa-circle-notch fa-spin').addClass('fas fa-check');
setTimeout(function () {
$('#save_btn .icon i').removeClass('fas fa-check').addClass('far fa-circle');
$('#save_btn').removeClass("disabled");
},1000);
} else {
$('#save_btn .icon i').removeClass('fas fa-circle-notch fa-spin').addClass('fas fa-times');
$('#save_btn').removeClass('btn-success').addClass('btn-danger');
setTimeout(function () {
$('#save_btn .icon i').removeClass('fas fa-times').addClass('far fa-circle');
$('#save_btn').removeClass('btn-danger').addClass('btn-success');
$('#save_btn').removeClass("disabled");
},1000);
}
},
error: function() {
$('#save_btn .icon i').removeClass('fas fa-circle-notch fa-spin').addClass('fas fa-times');
$('#save_btn').removeClass('btn-success').addClass('btn-danger');
setTimeout(function () {
$('#save_btn .icon i').removeClass('fas fa-times').addClass('far fa-circle');
$('#save_btn').removeClass('btn-danger').addClass('btn-success');
$('#save_btn').removeClass("disabled");
},1000);
}
});
}
window.add_presentation_room = function () {
$('#modal_presentation_room button').addClass("disabled");
var id_room = $('#p_room option:selected').attr('id');
var sleep = $('#p_sleep_r').val();
var video_wait_end = ($('#p_wait_video_end').is(':checked')) ? 1 : 0;
var override_pos_presentation = ($('#override_pos_presentation').is(':checked')) ? 1 : 0;
var yaw = parseFloat(window.viewer_pos.getYaw());
var pitch = parseFloat(window.viewer_pos.getPitch());
var hfov = parseInt(window.viewer_pos.getHfov());
$.ajax({
url: "ajax/add_presentation_room.php",
type: "POST",
data: {
id_virtualtour: window.id_virtualtour,
id_room: id_room,
sleep: sleep,
video_wait_end: video_wait_end,
override_pos_presentation: override_pos_presentation,
yaw: yaw,
pitch: pitch,
hfov: hfov
},
async: true,
success: function (json) {
var rsp = JSON.parse(json);
$('#modal_presentation_room button').removeClass("disabled");
if(rsp.status=='ok') {
$('#modal_presentation_room').modal("hide");
localStorage.setItem('scrollpos', parseInt(window.scrollY));
location.reload();
}
}
});
}
window.edit_presentation_room = function (id) {
$('#modal_presentation_room button').addClass("disabled");
var sleep = $('#p_sleep_r').val();
var video_wait_end = ($('#p_wait_video_end').is(':checked')) ? 1 : 0;
var override_pos_presentation = ($('#override_pos_presentation').is(':checked')) ? 1 : 0;
var yaw = parseFloat(window.viewer_pos.getYaw());
var pitch = parseFloat(window.viewer_pos.getPitch());
var hfov = parseInt(window.viewer_pos.getHfov());
$.ajax({
url: "ajax/save_presentation_room.php",
type: "POST",
data: {
id: id,
sleep: sleep,
video_wait_end: video_wait_end,
override_pos_presentation: override_pos_presentation,
yaw: yaw,
pitch: pitch,
hfov: hfov
},
async: true,
success: function (json) {
var rsp = JSON.parse(json);
$('#modal_presentation_room button').removeClass("disabled");
if(rsp.status=='ok') {
$('#modal_presentation_room').modal("hide");
localStorage.setItem('scrollpos', parseInt(window.scrollY));
location.reload();
}
}
});
}
window.delete_p_action = function (id) {
$('#modal_delete_p_action button').addClass("disabled");
$.ajax({
url: "ajax/delete_presentation_action.php",
type: "POST",
data: {
id_virtualtour: window.id_virtualtour,
id: id
},
async: true,
success: function (json) {
var rsp = JSON.parse(json);
$('#modal_delete_p_action button').removeClass("disabled");
if(rsp.status=='ok') {
$('#modal_delete_p_action').modal("hide");
$('#modal_presentation_action').modal("hide");
localStorage.setItem('scrollpos', parseInt(window.scrollY));
location.reload();
}
}
});
}
window.delete_p_room = function (id_room) {
$('#modal_delete_p_room button').addClass("disabled");
$.ajax({
url: "ajax/delete_presentation_room.php",
type: "POST",
data: {
id_virtualtour: window.id_virtualtour,
id_room: id_room
},
async: true,
success: function (json) {
var rsp = JSON.parse(json);
$('#modal_delete_p_room button').removeClass("disabled");
if(rsp.status=='ok') {
$('#modal_delete_p_room').modal("hide");
$('#modal_presentation_room').modal("hide");
localStorage.setItem('scrollpos', parseInt(window.scrollY));
location.reload();
}
}
});
}
window.filter_vt = function () {
var id_category = $('#filter_category option:selected').attr('id');
var id_user = $('#filter_user option:selected').attr('id');
if(id_category==0 && id_user==0) {
location.href = 'index.php?p=virtual_tours';
} else if(id_category!=0 && id_user==0) {
location.href = 'index.php?p=virtual_tours&cat='+id_category;
} else if(id_category==0 && id_user!=0) {
location.href = 'index.php?p=virtual_tours&user='+id_user;
} else {
location.href = 'index.php?p=virtual_tours&cat='+id_category+'&user='+id_user;
}
}
function parse_virtual_tour_list(virtual_tours,categories,id_category_sel,users,id_user_sel,aws_s3_enabled) {
var html = '';
var search_val = sessionStorage.getItem('search_vt');
if(search_val==null) search_val='';
if(location.href.includes('edit_user')) {
search_val='';
}
var option_categories = '';
jQuery.each(categories, function(index, category) {
var res = category.split("|");
var id_category = res[0];
var name_category = res[1];
if(id_category_sel==id_category) {
option_categories += "<option selected id='"+id_category+"'>"+name_category+"</option>";
} else {
option_categories += "<option id='"+id_category+"'>"+name_category+"</option>";
}
});
var option_users = '';
jQuery.each(users, function(index, user) {
var res = user.split("|");
var id_user_f = res[0];
var name_user = res[1];
if(id_user_sel==id_user_f) {
option_users += "<option selected id='"+id_user_f+"'>"+name_user+"</option>";
} else {
option_users += "<option id='"+id_user_f+"'>"+name_user+"</option>";
}
});
if(window.user_role=='administrator') {
var display_user_f = '';
var col_sm_f = 4;
var col_md_f = 2;
} else {
var display_user_f = 'd-none';
var col_sm_f = 6;
var col_md_f = 3;
}
html += '<div class="search_vt_div card mb-2 pt-3">\n' +
' <div class="card-body" style="padding-top: 0;padding-bottom: 0;">';
html += '<div class="row">' +
'<div class="col-lg-6 col-md-6 col-sm-12 col-12">' +
' <div class="input-group mb-3">' +
' <span class="input-group-prepend">' +
' <div class="input-group-text bg-white border-right-0"><i class="fa fa-search"></i></div>' +
' </span>' +
' <input onkeyup="persist_search(\'vt\')" class="search_input form-control py-2" type="text" value="'+search_val+'" placeholder="'+window.backend_labels.search_vt+'" autocomplete="new-password" >' +
' <span class="input-group-append">' +
' <div onclick="clear_search(\'vt\');" style="cursor: pointer;" class="input-group-text bg-gray-300 border-left-0"><i class="fa fa-times"></i></div>' +
' </span>' +
' </div>' +
'</div>' +
'<div class="col-lg-'+col_md_f+' col-md-'+col_md_f+' col-sm-'+col_sm_f+' col-'+col_sm_f+' mb-3">' +
' <select onchange="filter_vt();" id="filter_category" data-live-search="true" class="form-control">' +
' <option id="0">'+window.backend_labels.all_categories+'</option>' +
option_categories +
' </select>' +
'</div>' +
'<div class="col-lg-'+col_md_f+' col-md-'+col_md_f+' col-sm-'+col_sm_f+' col-'+col_sm_f+' mb-3 '+display_user_f+'">' +
' <select onchange="filter_vt();" id="filter_user" data-live-search="true" class="form-control">' +
' <option id="0">'+window.backend_labels.all_users+'</option>' +
option_users +
' </select>' +
'</div>' +
' <div class="col-lg-'+col_md_f+' col-md-'+col_md_f+' col-sm-'+col_sm_f+' col-'+col_sm_f+' mb-3">\n' +
' <input id="view_type_toggle" type="checkbox" checked data-toggle="toggle" data-width="100%" data-on="'+window.backend_labels.list+'" data-off="'+window.backend_labels.grid+'" data-onstyle="light" data-offstyle="light">\n' +
' </div>\n' +
'</div>';
html += '</div></div>';
jQuery.each(virtual_tours, function(index, virtual_tour) {
var id = virtual_tour.id;
var external = parseInt(virtual_tour.external);
var name = virtual_tour.name;
var author = virtual_tour.author;
var id_user = virtual_tour.id_user;
var category = virtual_tour.category_name;
var date_created = virtual_tour.date_created;
var count_rooms = parseInt(virtual_tour.count_rooms);
var count_maps = parseInt(virtual_tour.count_maps);
var count_gallery = parseInt(virtual_tour.count_gallery);
var info_box_check = parseInt(virtual_tour.info_box_check);
var slideshow_check = parseInt(virtual_tour.slideshow_check);
var edit_permission = virtual_tour.edit_permission;
var edit_ui_permission = virtual_tour.edit_ui_permission;
var edit_3d_view = virtual_tour.edit_3d_view_permission;
var background_image = virtual_tour.background_image;
var panoramas_list = virtual_tour.panoramas_list;
var dollhouse = parseInt(virtual_tour.dollhouse);
var count_video360 = parseInt(virtual_tour.count_video360);
var count_video_projects = parseInt(virtual_tour.count_video_projects);
var aws_s3 = parseInt(virtual_tour.aws_s3);
var languages = virtual_tour.languages;
var default_language = virtual_tour.default_language;
var languages_list = languages.join(' ');
if(aws_s3==1) {
var aws_s3_url = virtual_tour.aws_s3_url;
}
var note = virtual_tour.note;
var array_panorams_vt = [];
if(panoramas_list!='') {
array_panorams_vt = panoramas_list.split(",");
}
if(window.user_role=='administrator') {
author = "<span class='author_vt_list'> <a style='text-decoration:none;vertical-align:baseline' href='index.php?p=edit_user&id="+id_user+"'><i class=\"fas fa-user\"></i> "+author+"</a></span>";
} else {
author = "<span class='author_vt_list'> <i class=\"fas fa-user\"></i> "+author+"</span>";
}
var languages_html = "<img class='lang_vt_list' src='img/flags_lang/"+default_language+".png?v=2' /> ";
var count_l = languages.length;
if(count_l>4) languages = languages.slice(0, 4);
$.each(languages,function(index_l, lang) {
languages_html += "<img class='lang_vt_list' src='img/flags_lang/"+lang+".png?v=2' /> ";
});
if(languages_html!='') {
languages_html = " "+languages_html;
var other_l_count = count_l-4;
if(other_l_count>0) languages_html += " <span style='font-size:10px;'>+"+other_l_count+"</span>";
}
if(external==1) {
var disabled = 'disabled';
} else {
var disabled = '';
}
if(dollhouse==1) {
var badge_dollhouse = '<span style="top:-8px;right:-5px" class="badge badge-pill badge-secondary position-absolute">1</span>';
} else {
var badge_dollhouse = '';
}
if(count_rooms>0) {
var badge_room = '<span style="top:-8px;right:-5px" class="badge badge-pill badge-secondary position-absolute">'+count_rooms+'</span>';
} else {
var badge_room = '';
}
if(count_maps>0) {
var badge_map = '<span style="top:-8px;right:-5px" class="badge badge-pill badge-secondary position-absolute">'+count_maps+'</span>';
} else {
var badge_map = '';
}
if(count_gallery>0) {
var badge_gallery = '<span style="top:-8px;right:-5px" class="badge badge-pill badge-secondary position-absolute">'+count_gallery+'</span>';
} else {
var badge_gallery = '';
}
if(info_box_check==1) {
var badge_info = '<span style="top:-8px;right:-5px" class="badge badge-pill badge-secondary position-absolute">1</span>';
} else {
var badge_info = '';
}
if(slideshow_check==1) {
var badge_slideshow = '<span style="top:-8px;right:-5px" class="badge badge-pill badge-secondary position-absolute">1</span>';
} else {
var badge_slideshow = '';
}
if(count_video360>0) {
var badge_video360 = '<span style="top:-8px;right:-5px" class="badge badge-pill badge-secondary position-absolute">'+count_video360+'</span>';
} else {
var badge_video360 = '';
}
if(count_video_projects>0) {
var badge_video_projects = '<span style="top:-8px;right:-5px" class="badge badge-pill badge-secondary position-absolute">'+count_video_projects+'</span>';
} else {
var badge_video_projects = '';
}
var html_exp = '',html_status = '',html_storage='';
var start_date = virtual_tour.start_date;
var end_date = virtual_tour.end_date;
if((start_date!='') || (end_date!='')) {
html_exp = ' <span style="font-size:12px">('+start_date+' - '+end_date+')</span>';
}
if(external==0) {
if(parseInt(aws_s3_enabled)==1 && window.user_role=='administrator') {
if(aws_s3==1) {
html_storage = '<span onclick="modal_move_to_local('+id+');return false;" class="badge badge-dark button_storage_vt"><i class="fas fa-cloud"></i></span> ';
} else {
html_storage = '<span onclick="modal_move_to_s3('+id+');return false;" class="badge badge-light button_storage_vt"><i class="far fa-folder"></i></span> ';
}
}
}
if(parseInt(virtual_tour.status)==1) {
html_status = '<i style="color: green" class="fas fa-circle"></i>';
} else {
html_status = '<i style="color: red" class="fas fa-circle"></i>';
}
var btn_duplicate = '';
if(parseInt(window.can_create)==1) {
btn_duplicate = '<a title="'+window.backend_labels.duplicate.toUpperCase()+'" href="#" onclick="modal_duplicate_virtualtour('+id+');return false;" class="btn btn-secondary btn-sm btn_duplicate '+disabled+'">\n' +
'<i class="fas fa-copy"></i>\n' +
'</a>\n';
}
var btn_export = '';
if(parseInt(window.enable_export_vt)==1) {
btn_export = '<a title="'+window.backend_labels.export_vt.toUpperCase()+'" href="#" onclick="modal_export_virtualtour('+id+');return false;" class="btn btn-secondary btn-sm btn_export '+disabled+'">\n' +
'<i class="fas fa-download"></i>\n' +
'</a>\n';
}
var btn_edit = '';
var btn_edit_ui = '';
var btn_edit_3d_view = '';
var btn_rename = '';
var input_rename = '';
if(edit_permission) {
btn_edit = '<a title="'+window.backend_labels.edit.toUpperCase()+'" href="index.php?p=edit_virtual_tour&id='+id+'" class="btn btn-warning btn-sm">\n' +
'<i class="fas fa-edit"></i>\n' +
'</a>\n';
btn_rename = '<i id="btn_view_rename_'+id+'" onclick="view_rename_vt('+id+');" class="btn_view_rename fas fa-pen"></i>';
btn_rename += '<i id="btn_save_rename_'+id+'" onclick="save_rename_vt('+id+');" class="btn_save_rename fas fa-check d-none"></i> ';
btn_rename += '<i id="btn_close_rename_'+id+'" onclick="close_rename_vt('+id+');" class="btn_close_rename fas fa-times d-none"></i>';
input_rename = '<input id="rename_input_'+id+'" class="rename_input d-none" type="text" value="'+name+'" />';
}
if(edit_ui_permission) {
btn_edit_ui = '<a title="'+window.backend_labels.editor_ui.toUpperCase()+'" href="index.php?p=edit_virtual_tour_ui&id_vt='+id+'" class="btn btn-warning btn-sm '+disabled+'">\n' +
'<i class="fas fa-swatchbook"></i>\n' +
'</a>\n';
}
if(edit_3d_view) {
btn_edit_3d_view = '<a title="'+window.backend_labels.dollhouse.toUpperCase()+'" href="index.php?p=dollhouse&id_vt='+id+'" class="btn btn-warning btn-sm position-relative '+disabled+'">\n' +
'<i class="fas fa-cube"></i>\n' + badge_dollhouse +
'</a>\n';
}
var cat_html = '';
if(category!='') {
cat_html = ' <i class="fas fa-th-list"></i> '+category;
}
var img2 = '', img3 = '';
var o_position = 'center center';
if(background_image=='') {
if (array_panorams_vt.hasOwnProperty(0)) {
if(aws_s3==1) {
var img1_src = aws_s3_url+'viewer/panoramas/thumb/'+array_panorams_vt[0];
} else {
var img1_src = '../viewer/panoramas/thumb/'+array_panorams_vt[0];
}
} else {
var img1_src = 'data:image/gif;base64,R0lGODlhAQABAIAAAMLCwgAAACH5BAAAAAAALAAAAAABAAEAAAICRAEAOw==';
}
if (array_panorams_vt.hasOwnProperty(1)) {
if(aws_s3==1) {
var img2_src = aws_s3_url+'viewer/panoramas/thumb/'+array_panorams_vt[1];
} else {
var img2_src = '../viewer/panoramas/thumb/'+array_panorams_vt[1];
}
img2 = '<img class="img2_vt" loading="lazy" src="'+img2_src+'">';
}
if (array_panorams_vt.hasOwnProperty(2)) {
if(aws_s3==1) {
var img3_src = aws_s3_url+'viewer/panoramas/thumb/'+array_panorams_vt[2];
} else {
var img3_src = '../viewer/panoramas/thumb/'+array_panorams_vt[2];
}
img3 = '<img class="img3_vt" loading="lazy" src="'+img3_src+'">';
o_position = '-15px center';
}
} else {
if(aws_s3==1) {
var img1_src = aws_s3_url+'viewer/content/thumb/'+background_image;
} else {
var img1_src = '../viewer/content/thumb/'+background_image;
}
if (array_panorams_vt.hasOwnProperty(0)) {
if(aws_s3==1) {
var img2_src = aws_s3_url+'viewer/panoramas/thumb/'+array_panorams_vt[0];
} else {
var img2_src = '../viewer/panoramas/thumb/'+array_panorams_vt[0];
}
img2 = '<img class="img2_vt" loading="lazy" src="'+img2_src+'">';
}
if (array_panorams_vt.hasOwnProperty(1)) {
if(aws_s3==1) {
var img3_src = aws_s3_url+'viewer/panoramas/thumb/'+array_panorams_vt[1];
} else {
var img3_src = '../viewer/panoramas/thumb/'+array_panorams_vt[1];
}
img3 = '<img class="img3_vt" loading="lazy" src="'+img3_src+'">';
o_position = '-15px center';
}
}
var note_tooltip = '';
if(window.user_role=='administrator' && note!='') {
note_tooltip = ' <i title="'+note+'" class="far fa-sticky-note vt_note"></i>';
}
html += '<div class="div_vt card mb-2 py-2">\n' +
' <div class="card-body" style="padding-top: 0;padding-bottom: 0;">\n' +
' <div class="row vt">\n' +
' <div class="vt_content col text-center text-sm-center text-md-left text-lg-left">\n' +
' <div style="width: 90px;height: 45px;overflow: hidden;border-radius: 6px;position: relative;" class="d-inline-block align-middle"><img loading="lazy" style="width:100%;height:100%;object-fit:cover;object-position:'+o_position+'" src="'+img1_src+'">'+img2+img3+'</div>' +
' <div class="vt_info d-inline-block align-middle ml-2 text-left"><b class="vt_name" id="vt_name_'+id+'">'+((name.length > 60) ? name.slice(0, 60) + "..." : name)+'</b>'+input_rename+' '+btn_rename+'<br><span style="font-size:12px;line-height:12px;">'+html_storage+html_status+' '+date_created+' '+cat_html+author+note_tooltip+'</span>' + html_exp + languages_html + '</div>\n' +
' </div>\n' +
' <div class="vt_buttons col-md-auto pt-1 text-center text-sm-center text-md-right text-lg-right">\n' + btn_edit + btn_edit_ui + btn_edit_3d_view +
' <a title="'+window.backend_labels.rooms.toUpperCase()+'" href="index.php?p=rooms&id_vt='+id+'" class="btn btn-info btn-sm position-relative '+disabled+'">\n' +
' <i class="fas fa-vector-square"></i>\n' + badge_room +
' </a>\n' +
' <a title="'+window.backend_labels.maps.toUpperCase()+'" href="index.php?p=maps&id_vt='+id+'" class="btn btn-info btn-sm position-relative '+disabled+'">\n' +
' <i class="fas fa-map-marked-alt"></i>\n' + badge_map +
' </a>\n' +
' <a title="'+window.backend_labels.gallery.toUpperCase()+'" href="index.php?p=gallery&id_vt='+id+'" class="btn btn-info btn-sm position-relative '+disabled+'">\n' +
' <i class="fas fa-images"></i>\n' + badge_gallery +
' </a>\n' +
' <a title="'+window.backend_labels.slideshow.toUpperCase()+'" href="index.php?p=gallery&id_vt='+id+'" class="btn btn-info btn-sm position-relative '+disabled+'">\n' +
' <i class="fas fa-file-video"></i>\n' + badge_slideshow +
' </a>\n' +
' <a title="'+window.backend_labels.info_box.toUpperCase()+'" href="index.php?p=info&id_vt='+id+'" class="btn btn-info btn-sm position-relative '+disabled+'">\n' +
' <i class="fas fa-info-circle"></i>\n' + badge_info +
' </a>\n' +
' <a title="'+window.backend_labels.video360.toUpperCase()+'" href="index.php?p=video360&id_vt='+id+'" class="btn btn-info btn-sm position-relative '+disabled+'">\n' +
' <i class="fas fa-video"></i>\n' + badge_video360 +
' </a>\n' +
' <a title="'+window.backend_labels.video_projects.toUpperCase()+'" href="index.php?p=video&id_vt='+id+'" class="btn btn-info btn-sm position-relative '+disabled+'">\n' +
' <i class="fas fa-film"></i>\n' + badge_video_projects +
' </a>\n' +
' <a title="'+window.backend_labels.preview.toUpperCase()+'" href="index.php?p=preview&id_vt='+id+'" class="btn btn-dark btn-sm">\n' +
' <i class="fas fa-eye"></i>\n' +
' </a>\n' +
' <a title="'+window.backend_labels.publish.toUpperCase()+'" href="index.php?p=publish&id_vt='+id+'" class="btn btn-dark btn-sm">\n' +
' <i class="fas fa-paper-plane"></i>\n' +
' </a>\n' + btn_export + btn_duplicate +
' <a title="'+window.backend_labels.delete.toUpperCase()+'" href="#" onclick="modal_delete_virtualtour('+id+');return false;" class="btn btn-danger btn-sm btn_delete_vt">\n' +
' <i class="fas fa-trash"></i>\n' +
' </a>\n' +
' </div>\n' +
' </div>\n' +
' </div>\n' +
' </div>';
});
$('#virtual_tours_list').html(html).promise().done(function () {
$('.vt_note').tooltip();
$('#filter_category').selectpicker();
$('#filter_user').selectpicker();
$('.rename_input').keydown(function (e) {
var keyCode = e.keyCode || e.which;
if (keyCode == 13) {
var id = $(this).attr('id').replace('rename_input_','');
save_rename_vt(id);
}
});
$('#view_type_toggle').bootstrapToggle();
$('#view_type_toggle').change(function() {
var checked = $(this).prop('checked');
if(!checked) {
localStorage.setItem('vt_view_type', 'grid');
$('.div_vt').addClass('div_vt_grid');
$('#virtual_tours_list').css('margin','0 -5px');
$('#virtual_tours_list .vt .vt_content').removeClass('text-lg-left').removeClass('text-md-left');
$('#virtual_tours_list .vt .vt_buttons').removeClass('text-lg-right').removeClass('text-md-right');
$('#virtual_tours_list .vt .vt_content').removeClass('col-md-6').addClass('col-12');
$('#virtual_tours_list .vt .vt_buttons').removeClass('col-md-6').addClass('col-12').addClass('mt-1');
$('#virtual_tours_list .vt .vt_buttons').addClass('col-auto').removeClass('col-md-auto');
$('#virtual_tours_list .vt .vt_content .vt_info').removeClass('text-left').addClass('text-center');
$('#virtual_tours_list .vt .vt_content .vt_info').css('width','100%');
} else {
localStorage.setItem('vt_view_type', 'list');
$('.div_vt').removeClass('div_vt_grid');
$('#virtual_tours_list').css('margin','0');
$('#virtual_tours_list .vt .vt_content').addClass('text-lg-left').addClass('text-md-left');
$('#virtual_tours_list .vt .vt_buttons').addClass('text-lg-right').addClass('text-md-right');
$('#virtual_tours_list .vt .vt_content').removeClass('col-12').addClass('col-md-6');
$('#virtual_tours_list .vt .vt_buttons').removeClass('col-12').addClass('col-md-6').removeClass('mt-1');
$('#virtual_tours_list .vt .vt_buttons').removeClass('col-auto').addClass('col-md-auto');
$('#virtual_tours_list .vt .vt_content .vt_info').addClass('text-left').removeClass('text-center');
$('#virtual_tours_list .vt .vt_content .vt_info').css('width','auto');
}
});
if ("vt_view_type" in localStorage) {
var view_type = localStorage.getItem('vt_view_type');
switch (view_type) {
case 'list':
$('#view_type_toggle').bootstrapToggle('on');
break;
case 'grid':
$('#view_type_toggle').bootstrapToggle('off');
break;
}
}
if(window.user_role=='editor') {
$('.fa-trash').parent().hide();
$('.fa-copy').parent().hide();
$('.fa-paper-plane').parent().hide();
}
$('#virtual_tours_list').searchable({
selector : '.div_vt',
childSelector : 'div',
searchField : '.search_input',
searchType : 'default',
clearOnLoad : false
});
$('#virtual_tours_list .div_vt .btn').tooltipster({
delay: 10,
hideOnClick: true
});
if(window.location.href.includes('virtual_tours')) {
var scrollpos = sessionStorage.getItem('scrollpos_vt');
if (scrollpos) {
document.getElementById("content-wrapper").scrollTo(0,scrollpos);
sessionStorage.removeItem('scrollpos_vt');
}
}
});
}
window.view_rename_vt = function(id) {
$('#btn_view_rename_'+id).addClass('d-none');
$('#btn_save_rename_'+id).removeClass('d-none');
$('#btn_close_rename_'+id).removeClass('d-none');
$('#rename_input_'+id).removeClass('d-none');
$('#rename_input_'+id).select();
$('#vt_name_'+id).addClass('d-none');
}
window.save_rename_vt = function(id) {
var name = $('#rename_input_'+id).val();
if(name!='') {
name = DOMPurify.sanitize(name);
$('#vt_name_'+id).html(name);
$.ajax({
url: "ajax/rename_vt.php",
type: "POST",
data: {
id: id,
name: name
},
async: true,
success: function (json) {
$('#btn_view_rename_'+id).removeClass('d-none');
$('#btn_save_rename_'+id).addClass('d-none');
$('#btn_close_rename_'+id).addClass('d-none');
$('#rename_input_'+id).addClass('d-none');
$('#vt_name_'+id).removeClass('d-none');
}
});
}
}
window.close_rename_vt = function(id) {
$('#btn_view_rename_'+id).removeClass('d-none');
$('#btn_save_rename_'+id).addClass('d-none');
$('#btn_close_rename_'+id).addClass('d-none');
$('#rename_input_'+id).addClass('d-none');
$('#vt_name_'+id).removeClass('d-none');
}
function parse_map_list(maps,permissions) {
var html = '', html_search='';
var search_val = sessionStorage.getItem('search_map');
if(search_val==null) search_val='';
if(maps.length>0) {
html_search = '<div class="card mb-2 pt-3">\n' +
' <div class="card-body" style="padding-top: 0;padding-bottom: 0;">';
html_search += '<div class="row">\n' +
'<div class="col-lg-10 col-md-8 col-sm-8 col-6">\n' +
' <div class="input-group mb-3">\n' +
' <span class="input-group-prepend">\n' +
' <div class="input-group-text bg-white border-right-0"><i class="fa fa-search"></i></div>\n' +
' </span>\n' +
' <input onkeyup="persist_search(\'map\')" class="search_input form-control py-2" type="text" value="'+search_val+'" placeholder="'+window.backend_labels.search_map+'" autocomplete="new-password" >\n' +
' <span class="input-group-append">\n' +
' <div onclick="clear_search(\'map\');" style="cursor: pointer;" class="input-group-text bg-gray-300 border-left-0"><i class="fa fa-times"></i></div>\n' +
' </span>\n' +
' </div>\n' +
'</div>\n' +
' <div class="col-lg-2 col-md-4 col-sm-4 col-6">\n' +
' <input id="view_type_toggle" type="checkbox" checked data-toggle="toggle" data-width="100%" data-on="'+window.backend_labels.list+'" data-off="'+window.backend_labels.grid+'" data-onstyle="light" data-offstyle="light">\n' +
' </div>\n' +
'</div>\n';
html_search += '</div></div>';
}
jQuery.each(maps, function(index, map) {
var id = map.id;
var name = map.name;
var image = map.map_image;
var map_type = map.map_type;
var count = map.count_rooms;
var btn_rename = '<i id="btn_view_rename_'+id+'" onclick="view_rename_map('+id+');" class="btn_view_rename fas fa-pen"></i>';
btn_rename += '<i id="btn_save_rename_'+id+'" onclick="save_rename_map('+id+');" class="btn_save_rename fas fa-check d-none"></i> ';
btn_rename += '<i id="btn_close_rename_'+id+'" onclick="close_rename_map('+id+');" class="btn_close_rename fas fa-times d-none"></i>';
var input_rename = '<input id="rename_input_'+id+'" class="rename_input d-none" type="text" value="'+name+'" />';
switch (map_type) {
case 'floorplan':
html += '<div class="div_map card mb-2 py-2">\n' +
' <div class="card-body" style="padding-top: 0;padding-bottom: 0;">\n' +
' <div data-id="'+id+'" class="row maph">\n' +
' <div class="map_content col-md-8 text-center text-sm-center text-md-left text-lg-left">\n' +
' <div style="width: 90px;height: 45px;overflow: hidden;border-radius: 6px;" class="d-inline-block align-middle"><img loading="lazy" style="width: 100%;" src="'+image+'"></div>\n' +
' <div class="map_info d-inline-block align-middle ml-2 text-left"><b class="map_name" id="map_name_'+id+'">'+window.icon_show_ui_map+' <span>'+((name.length > 60) ? name.slice(0, 60) + "..." : name)+'</span></b>'+input_rename+' '+btn_rename+'<br><span style="font-size:12px">'+count+' '+window.backend_labels.rooms_assigned+'</span></div>\n' +
' </div>\n' +
' <div class="map_buttons col-md-4 pt-1 text-center text-sm-center text-md-right text-lg-right">\n' +
' <a title="'+window.backend_labels.drag_change_pos.toUpperCase()+'" style="background-color: white; border: 1px solid black; cursor: pointer" class="handle btn btn-primary btn-sm">\n' +
' <i style="color: black" class="fas fa-arrows-alt"></i>\n' +
' </a>\n' +
' <a title="'+window.backend_labels.edit.toUpperCase()+'" href="index.php?p=edit_map&id='+id+'" class="btn btn-warning btn-sm">\n' +
' <i class="fas fa-edit"></i>\n' +
' </a>\n' +
' <a title="'+window.backend_labels.delete.toUpperCase()+'" href="#" onclick="modal_delete_map('+id+');return false;" class="btn btn-danger btn-sm">\n' +
' <i class="fas fa-trash"></i>\n' +
' </a>\n' +
' </div>\n' +
' </div>\n' +
' </div>\n' +
' </div>';
break;
case 'map':
html += '<div class="div_map card mb-2 py-2">\n' +
' <div class="card-body" style="padding-top: 0;padding-bottom: 0;">\n' +
' <div data-id="'+id+'" class="row maph">\n' +
' <div class="map_content col-md-8 text-center text-sm-center text-md-left text-lg-left">\n' +
' <div style="width: 90px;height: 45px;overflow: hidden;border-radius: 6px;" class="d-inline-block align-middle"><img style="width: 100%;" src="img/map.jpg"></div>\n' +
' <div class="map_info d-inline-block align-middle ml-2 text-left"><b class="map_name" id="map_name_'+id+'">'+window.icon_show_ui_map_tour+' <span>'+((name.length > 60) ? name.slice(0, 60) + "..." : name)+'</span></b>'+input_rename+' '+btn_rename+'<br><span style="font-size:12px">'+count+' '+window.backend_labels.rooms_assigned+'</span></div>\n' +
' </div>\n' +
' <div class="map_buttons col-md-4 pt-1 text-center text-sm-center text-md-right text-lg-right">\n' +
' <a title="'+window.backend_labels.edit.toUpperCase()+'" href="index.php?p=edit_map&id='+id+'" class="btn btn-warning btn-sm">\n' +
' <i class="fas fa-edit"></i>\n' +
' </a>\n' +
' <a title="'+window.backend_labels.delete.toUpperCase()+'" href="#" onclick="modal_delete_map('+id+');return false;" class="btn btn-danger btn-sm">\n' +
' <i class="fas fa-trash"></i>\n' +
' </a>\n' +
' </div>\n' +
' </div>\n' +
' </div>\n' +
' </div>';
break;
}
});
$('#maps_list').html(html).promise().done(function () {
$('.help_t').tooltip();
$('#search_div').html(html_search).promise().done(function () {
$('.rename_input').keydown(function (e) {
var keyCode = e.keyCode || e.which;
if (keyCode == 13) {
var id = $(this).attr('id').replace('rename_input_','');
save_rename_map(id);
}
});
$('#view_type_toggle').bootstrapToggle();
$('#view_type_toggle').change(function() {
var checked = $(this).prop('checked');
if(!checked) {
localStorage.setItem('map_view_type', 'grid');
$('.div_map').addClass('div_map_grid');
$('#maps_list').css('margin','0 -5px');
$('#maps_list .maph .map_content').removeClass('text-lg-left').removeClass('text-md-left');
$('#maps_list .maph .map_buttons').removeClass('text-lg-right').removeClass('text-md-right');
$('#maps_list .maph .map_content').removeClass('col-md-8').addClass('col-12');
$('#maps_list .maph .map_buttons').removeClass('col-md-4').addClass('col-12').addClass('mt-1');
$('#maps_list .maph .map_buttons').addClass('col-auto').removeClass('col-md-auto');
$('#maps_list .maph .map_content .map_info').removeClass('text-left').addClass('text-center');
$('#maps_list .maph .map_content .map_info').css('width','100%');
} else {
localStorage.setItem('map_view_type', 'list');
$('.div_map').removeClass('div_map_grid');
$('#maps_list').css('margin','0');
$('#maps_list .maph .map_content').addClass('text-lg-left').addClass('text-md-left');
$('#maps_list .maph .map_buttons').addClass('text-lg-right').addClass('text-md-right');
$('#maps_list .maph .map_content').removeClass('col-12').addClass('col-md-8');
$('#maps_list .maph .map_buttons').removeClass('col-12').addClass('col-md-4').removeClass('mt-1');
$('#maps_list .maph .map_buttons').removeClass('col-auto').addClass('col-md-auto');
$('#maps_list .maph .map_content .map_info').addClass('text-left').removeClass('text-center');
$('#maps_list .maph .map_content .map_info').css('width','auto');
}
});
if ("map_view_type" in localStorage) {
var view_type = localStorage.getItem('map_view_type');
switch (view_type) {
case 'list':
$('#view_type_toggle').bootstrapToggle('on');
break;
case 'grid':
$('#view_type_toggle').bootstrapToggle('off');
break;
}
}
if(!permissions['edit']) {
$('#maps_list .fa-edit').parent().hide();
}
if(!permissions['delete']) {
$('#maps_list .fa-trash').parent().hide();
}
if(window.user_role=='editor') {
$('#maps_list .fa-arrows-alt').parent().hide();
}
$('#maps_list').searchable({
selector : '.div_map',
childSelector : 'div',
searchField : '.search_input',
searchType : 'default',
clearOnLoad : false
});
$('#maps_list .btn').tooltipster({
delay: 10,
hideOnClick: true
});
var el = document.getElementById('maps_list');
Sortable.create(el,{
handle: '.handle',
filter: ".no_drag",
onMove: function (e) { return e.related.className.indexOf('no_drag') === -1; },
onEnd: function (evt) {
var array_maps_priority = [];
$('#maps_list .maph').each(function () {
var id = $(this).attr('data-id');
array_maps_priority.push(id);
});
change_maps_order(array_maps_priority);
},
});
});
});
}
window.view_rename_map = function(id) {
$('#btn_view_rename_'+id).addClass('d-none');
$('#btn_save_rename_'+id).removeClass('d-none');
$('#btn_close_rename_'+id).removeClass('d-none');
$('#rename_input_'+id).removeClass('d-none');
$('#rename_input_'+id).select();
$('#map_name_'+id).addClass('d-none');
}
window.save_rename_map = function(id) {
var name = $('#rename_input_'+id).val();
if(name!='') {
$('#map_name_'+id+' span').html(name);
$.ajax({
url: "ajax/rename_map.php",
type: "POST",
data: {
id: id,
name: name
},
async: true,
success: function (json) {
$('#btn_view_rename_'+id).removeClass('d-none');
$('#btn_save_rename_'+id).addClass('d-none');
$('#btn_close_rename_'+id).addClass('d-none');
$('#rename_input_'+id).addClass('d-none');
$('#map_name_'+id).removeClass('d-none');
}
});
}
}
window.close_rename_map = function(id) {
$('#btn_view_rename_'+id).removeClass('d-none');
$('#btn_save_rename_'+id).addClass('d-none');
$('#btn_close_rename_'+id).addClass('d-none');
$('#rename_input_'+id).addClass('d-none');
$('#map_name_'+id).removeClass('d-none');
}
function parse_room_marker(rooms) {
var html = '';
if(rooms.length==0) {
$('#msg_no_room').show();
$('#msg_sel_room').hide();
} else {
$('#msg_no_room').hide();
window.rooms_count = rooms.length;
jQuery.each(rooms, function(index, room) {
var id = room.id;
var name = room.name;
var image = room.panorama_image;
var thumb_image = room.thumb_image_url;
var count_markers = room.count_markers;
html += '<div data-id="'+id+'" data-image="'+image+'" class="text-center py-1 room_'+id+'">\n' +
' <img class="room_image d-inline-block" src="'+thumb_image+'">\n' +
' <div class="room_quick_btn d-inline-block disabled_qb">' +
' <div data-action="quick_add" data-id="'+id+'" data-image="'+image+'" title="'+window.backend_labels.markers_quick_add+'" class="room_quick_add"><i class="fas fa-arrow-up"></i></div>' +
' <div data-action="add" data-id="'+id+'" data-image="'+image+'" title="'+window.backend_labels.markers_add+'" class="room_add"><i class="fas fa-plus"></i></div>' +
' </div>\n' +
' <div class="room_name d-block">'+name+'</div>\n' +
' <div class="room_counter d-block"><b id="count_marker_'+id+'">'+count_markers+'</b> '+window.backend_labels.markers+'</div>\n' +
'</div>';
});
$('.rooms_slider').html(html).promise().done(function () {
$('.rooms_slider .room_quick_add').tooltipster({
delay: 10,
hideOnClick: true,
position: 'top'
});
$('.rooms_slider .room_add').tooltipster({
delay: 10,
hideOnClick: true,
position: 'top'
});
$('.rooms_slider').on('init', function(event, slick){
$('.rooms_slider').css('opacity',1);
if(window.id_room_marker!=0) {
jQuery.each(window.rooms, function(index, room) {
var id = room.id;
var image = room.panorama_image;
if(id==window.id_room_marker) {
select_room_marker(id,image,null);
}
});
} else if(rooms.length==1) {
var id = rooms[0].id;
var image = rooms[0].panorama_image;
select_room_marker(id,image,null);
} else {
$('#msg_sel_room').show();
}
});
var initial_slide = 0;
if(window.id_room_marker!=0) {
jQuery.each(window.rooms, function(index, room) {
var id = room.id;
if(id==window.id_room_marker) {
initial_slide = index;
}
});
}
setTimeout(function () {
$('.rooms_slider').slick({
infinite: false,
draggable: true,
swipe: true,
touchMove: true,
dots: false,
slidesToShow: 6,
slidesToScroll: 6,
responsive: [
{
breakpoint: 1530,
settings: {
slidesToShow: 5,
slidesToScroll: 5
}
},
{
breakpoint: 1050,
settings: {
slidesToShow: 4,
slidesToScroll: 4
}
},
{
breakpoint: 830,
settings: {
slidesToShow: 3,
slidesToScroll: 3
}
},
{
breakpoint: 600,
settings: {
slidesToShow: 2,
slidesToScroll: 2
}
},
{
breakpoint: 450,
settings: {
slidesToShow: 1,
slidesToScroll: 1
}
}
]
});
$('.rooms_slider').slick("slickGoTo", parseInt(initial_slide), true);
$('.rooms_slider .slick-slide').on('mousedown',function () {
drag_slider_start = new Date().getTime();
drag_slider = false;
});
$('.rooms_slider .slick-slide').on('mousemove',function () {
drag_slider_end = new Date().getTime();
drag_slider = true;
});
$('.rooms_slider .slick-slide').on('click',function (event) {
var diff_drag = drag_slider_end - drag_slider_start;
if(drag_slider == false || diff_drag < 100) {
if (event.target.getAttribute("data-action") !== null) {
var id = $(this).attr('data-id');
var image = $(this).attr('data-image');
var action = event.target.getAttribute("data-action");
switch(action) {
case 'quick_add':
new_marker(window.id_room_sel,window.panorama_image,id);
break;
case 'add':
add_marker(window.id_room_sel,window.panorama_image,id);
break;
}
} else {
var id = $(this).attr('data-id');
var image = $(this).attr('data-image');
select_room_marker(id,image,null);
}
}
});
$('.rooms_slider .slick-slide').on('touchstart',function () {
drag_slider_start = new Date().getTime();
drag_slider = false;
});
$('.rooms_slider .slick-slide').on('touchmove',function () {
drag_slider_end = new Date().getTime();
drag_slider = true;
});
$('.rooms_slider .slick-slide').on('touchend',function (event) {
var diff_drag = drag_slider_end - drag_slider_start;
if(drag_slider == false || diff_drag < 100) {
if (event.target.getAttribute("data-action") !== null) {
var id = $(this).attr('data-id');
var image = $(this).attr('data-image');
var action = event.target.getAttribute("data-action");
switch(action) {
case 'quick_add':
new_marker(window.id_room_sel,image,id);
break;
case 'add':
add_marker(window.id_room_sel,image,id);
break;
}
} else {
var id = $(this).attr('data-id');
var image = $(this).attr('data-image');
select_room_marker(id,image,null);
}
}
});
if(window.wizard_step!=-1) {
create_wizard(window.wizard_step);
wizard_tour_open = true;
wizard_tour.start();
}
},200);
});
}
}
function parse_room_measure(rooms) {
var html = '';
if(rooms.length==0) {
$('#msg_no_room').show();
$('#msg_sel_room').hide();
} else {
$('#msg_no_room').hide();
jQuery.each(rooms, function(index, room) {
var id = room.id;
var name = room.name;
var image = room.panorama_image;
var thumb_image = room.thumb_image_url;
var count_measures = room.count_measures;
html += '<div data-id="'+id+'" data-image="'+image+'" class="text-center py-1 room_'+id+'">\n' +
' <img class="room_image m-auto" src="'+thumb_image+'">\n' +
' <div class="room_name d-block">'+name+'</div>\n' +
' <div class="room_counter d-block"><b id="count_measures_'+id+'">'+count_measures+'</b> '+window.backend_labels.measures+'</div>\n' +
'</div>';
});
$('.rooms_slider').html(html).promise().done(function () {
$('.rooms_slider').on('init', function(event, slick){
$('.rooms_slider').css('opacity',1);
if(window.id_room_measure!=0) {
jQuery.each(window.rooms, function(index, room) {
var id = room.id;
var image = room.panorama_image;
if(id==window.id_room_measure) {
select_room_measure(id,image,null);
}
});
} else if(rooms.length==1) {
var id = rooms[0].id;
var image = rooms[0].panorama_image;
select_room_measure(id,image,null);
} else {
$('#msg_sel_room').show();
}
});
var initial_slide = 0;
if(window.id_room_measure!=0) {
jQuery.each(window.rooms, function(index, room) {
var id = room.id;
if(id==window.id_room_measure) {
initial_slide = index;
}
});
}
setTimeout(function () {
$('.rooms_slider').slick({
infinite: false,
draggable: true,
swipe: true,
touchMove: true,
dots: false,
slidesToShow: 6,
slidesToScroll: 6,
responsive: [
{
breakpoint: 1530,
settings: {
slidesToShow: 5,
slidesToScroll: 5
}
},
{
breakpoint: 1050,
settings: {
slidesToShow: 4,
slidesToScroll: 4
}
},
{
breakpoint: 830,
settings: {
slidesToShow: 3,
slidesToScroll: 3
}
},
{
breakpoint: 600,
settings: {
slidesToShow: 2,
slidesToScroll: 2
}
},
{
breakpoint: 450,
settings: {
slidesToShow: 1,
slidesToScroll: 1
}
}
]
});
$('.rooms_slider').slick("slickGoTo", parseInt(initial_slide), true);
$('.rooms_slider .slick-slide').on('mousedown',function () {
drag_slider_start = new Date().getTime();
drag_slider = false;
});
$('.rooms_slider .slick-slide').on('mousemove',function () {
drag_slider_end = new Date().getTime();
drag_slider = true;
});
$('.rooms_slider .slick-slide').on('click',function () {
var diff_drag = drag_slider_end - drag_slider_start;
if(drag_slider == false || diff_drag < 100) {
var id = $(this).attr('data-id');
var image = $(this).attr('data-image');
select_room_measure(id,image,null);
}
});
$('.rooms_slider .slick-slide').on('touchstart',function () {
drag_slider_start = new Date().getTime();
drag_slider = false;
});
$('.rooms_slider .slick-slide').on('touchmove',function () {
drag_slider_end = new Date().getTime();
drag_slider = true;
});
$('.rooms_slider .slick-slide').on('touchend',function () {
var diff_drag = drag_slider_end - drag_slider_start;
if(drag_slider == false || diff_drag < 100) {
var id = $(this).attr('data-id');
var image = $(this).attr('data-image');
select_room_measure(id,image,null);
}
});
},200);
});
}
}
function parse_room_poi(rooms) {
var html = '';
if(rooms.length==0) {
$('#msg_no_room').show();
$('#msg_sel_room').hide();
} else {
$('#msg_no_room').hide();
jQuery.each(rooms, function(index, room) {
var id = room.id;
var name = room.name;
var image = room.panorama_image;
var thumb_image = room.thumb_image_url;
var count_markers = room.count_pois;
html += '<div data-id="'+id+'" data-image="'+image+'" class="text-center py-1 room_'+id+'">\n' +
' <img class="room_image m-auto" src="'+thumb_image+'">\n' +
' <div class="room_name d-block">'+name+'</div>\n' +
' <div class="room_counter d-block"><b id="count_poi_'+id+'">'+count_markers+'</b> '+window.backend_labels.pois+'</div>\n' +
'</div>';
});
$('.rooms_slider').html(html).promise().done(function () {
$('.rooms_slider').on('init', function(event, slick){
$('.rooms_slider').css('opacity',1);
if(window.id_room_poi!=0) {
jQuery.each(window.rooms, function(index, room) {
var id = room.id;
var image = room.panorama_image;
if(id==window.id_room_poi) {
select_room_poi(id,image,null);
}
});
} else if(rooms.length==1) {
var id = rooms[0].id;
var image = rooms[0].panorama_image;
select_room_poi(id,image,null);
} else {
$('#msg_sel_room').show();
}
});
var initial_slide = 0;
if(window.id_room_poi!=0) {
jQuery.each(window.rooms, function(index, room) {
var id = room.id;
if(id==window.id_room_poi) {
initial_slide = index;
}
});
}
setTimeout(function () {
$('.rooms_slider').slick({
infinite: false,
draggable: true,
swipe: true,
touchMove: true,
dots: false,
slidesToShow: 6,
slidesToScroll: 6,
responsive: [
{
breakpoint: 1530,
settings: {
slidesToShow: 5,
slidesToScroll: 5
}
},
{
breakpoint: 1050,
settings: {
slidesToShow: 4,
slidesToScroll: 4
}
},
{
breakpoint: 830,
settings: {
slidesToShow: 3,
slidesToScroll: 3
}
},
{
breakpoint: 600,
settings: {
slidesToShow: 2,
slidesToScroll: 2
}
},
{
breakpoint: 450,
settings: {
slidesToShow: 1,
slidesToScroll: 1
}
}
]
});
$('.rooms_slider').slick("slickGoTo", parseInt(initial_slide), true);
$('.rooms_slider .slick-slide').on('mousedown',function () {
drag_slider_start = new Date().getTime();
drag_slider = false;
});
$('.rooms_slider .slick-slide').on('mousemove',function () {
drag_slider_end = new Date().getTime();
drag_slider = true;
});
$('.rooms_slider .slick-slide').on('click',function () {
var diff_drag = drag_slider_end - drag_slider_start;
if(drag_slider == false || diff_drag < 100) {
var id = $(this).attr('data-id');
var image = $(this).attr('data-image');
select_room_poi(id,image,null);
}
});
$('.rooms_slider .slick-slide').on('touchstart',function () {
drag_slider_start = new Date().getTime();
drag_slider = false;
});
$('.rooms_slider .slick-slide').on('touchmove',function () {
drag_slider_end = new Date().getTime();
drag_slider = true;
});
$('.rooms_slider .slick-slide').on('touchend',function () {
var diff_drag = drag_slider_end - drag_slider_start;
if(drag_slider == false || diff_drag < 100) {
var id = $(this).attr('data-id');
var image = $(this).attr('data-image');
select_room_poi(id,image,null);
}
});
if(window.wizard_step!=-1) {
create_wizard(window.wizard_step);
wizard_tour_open = true;
wizard_tour.start();
}
},200);
});
}
}
window.open_preview_viewer = function () {
$('#modal_preview .modal-body').append('<iframe style="width:100%;height:80vh;;" allowfullscreen allow="gyroscope; accelerometer; xr; microphone *" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="../viewer/index.php?code='+window.code_vt+'&room='+window.id_room_sel+'&preview=1"></iframe>');
$('#modal_preview').modal('show');
}
window.open_preview_presentation = function (index,id_room) {
$('#modal_preview .modal-body').append('<iframe style="width:100%;height:80vh;;" allowfullscreen allow="gyroscope; accelerometer; xr; microphone *" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="../viewer/index.php?code='+window.code_vt+'&room='+id_room+'&nostat=1&preview=1&preview_presentation='+index+'"></iframe>');
$('#modal_preview').modal('show');
}
window.close_preview_viewer = function () {
$('#modal_preview .modal-body').html('');
}
window.select_room_marker = function (id_room,image,id_marker_add) {
if(id_room!=window.id_room_sel && !window.switched_page) {
window.currentPitch = 0;
window.currentYaw = 0;
}
if(id_room!=window.id_room_sel) {
window.id_room_alt_sel=0;
}
window.id_room_sel = id_room;
window.switched_page = false;
$('#visibile_in_views').empty();
jQuery.each(window.rooms, function(index, room) {
var id = room.id;
if(id==id_room) {
var rooms_alt = room.rooms_alt;
if(rooms_alt.length>0) {
var main_img = room.panorama_image;
var class_active = '';
if(image==main_img) {
class_active = 'active';
}
var main_view_tooltip = room.main_view_tooltip;
if(main_view_tooltip=='') main_view_tooltip = window.backend_labels.main_view;
if(window.s3_enabled==1) {
var image_url = window.s3_url+'viewer/panoramas/thumb/'+main_img;
} else {
var image_url = '../viewer/panoramas/thumb/'+main_img;
}
var html = "<img title=\""+main_view_tooltip+"\" id=\"room_alt_0\" class='"+class_active+" rooms_alt tooltip_view' onclick='change_room_alt(\"marker\",0,\""+main_img+"\");' src='"+image_url+"' />";
var option_select = "<option id='0'>"+main_view_tooltip+"</option>";
jQuery.each(rooms_alt, function(index_alt, room_alt) {
var id_alt = room_alt.id;
var img_alt = room_alt.panorama_image;
var view_tooltip = room_alt.view_tooltip;
if(view_tooltip=='') view_tooltip = window.backend_labels.view+" "+id_alt;
if(image==img_alt) class_active = 'active'; else class_active='';
if(window.s3_enabled==1) {
var image_url = window.s3_url+'viewer/panoramas/thumb/'+img_alt;
} else {
var image_url = '../viewer/panoramas/thumb/'+img_alt;
}
html += "<img title=\""+view_tooltip+"\" id=\"room_alt_"+id_alt+"\" class='"+class_active+" rooms_alt tooltip_view' onclick='change_room_alt(\"marker\","+id_alt+",\""+img_alt+"\");' src='"+image_url+"' />";
option_select += "<option id='"+id_alt+"'>"+view_tooltip+"</option>";
});
if(room.virtual_staging!=2) {
$('#visibile_in_views').prop('disabled',false);
$('#visibile_in_views').html(option_select).promise().done(function() {
$('#visibile_in_views').selectpicker('refresh');
});
$('.icon_visible_view').removeClass('hidden');
} else {
$('.icon_visible_view').addClass('hidden');
}
$('.rooms_view_sel').html(html).promise().done(function () {
$('.tooltip_view').tooltipster({
theme: 'tooltipster-borderless',
side: 'bottom',
animation: 'grow',
delay: 0,
arrow: false
});
});
} else {
$('.rooms_view_sel').empty();
$('.icon_visible_view').addClass('hidden');
}
}
});
$('.slick-slide').removeClass("selected_room");
$('.room_'+id_room).addClass("selected_room");
$('#btn_add_marker').attr('onclick','add_marker('+id_room+',\''+image+'\')');
$('#btn_add_marker').css('opacity',0);
$('#btn_list_hs').css('opacity',0);
$('#btn_list_hs').removeClass('disabled');
$('#btn_switch_to_poi').attr('onclick','switch_to_poi('+id_room+')');
$('#btn_switch_to_poi').css('opacity',0);
$('#btn_preview_modal').css('opacity',0);
$('#btn_toggle_fullscreen').css('opacity',0);
$('#msg_sel_room').hide();
$("#content-wrapper").animate({ scrollTop: $(document).height() }, 200);
$('.rooms_slider .room_quick_btn').removeClass('disabled_qb');
get_markers(id_room,image,id_marker_add);
}
window.switch_to_poi = function(id_room) {
var yaw = parseFloat(viewer.getYaw());
var pitch = parseFloat(viewer.getPitch());
sessionStorage.setItem('currentYaw',yaw.toString());
sessionStorage.setItem('currentPitch',pitch.toString());
location.href = 'index.php?p=pois&id_room='+id_room;
}
window.select_room_poi = function (id_room,image,id_poi_add) {
if(id_room!=window.id_room_sel && !window.switched_page) {
window.currentPitch = 0;
window.currentYaw = 0;
}
if(id_room!=window.id_room_sel) {
window.id_room_alt_sel=0;
}
window.id_room_sel = id_room;
window.switched_page = false;
$('#visibile_in_views').empty();
jQuery.each(window.rooms, function(index, room) {
var id = room.id;
if(id==id_room) {
var rooms_alt = room.rooms_alt;
if(rooms_alt.length>0) {
var main_img = room.panorama_image;
var class_active = '';
if(image==main_img) {
class_active = 'active';
}
var main_view_tooltip = room.main_view_tooltip;
if(main_view_tooltip=='') main_view_tooltip = window.backend_labels.main_view;
if(window.s3_enabled==1) {
var image_url = window.s3_url+'viewer/panoramas/thumb/'+main_img;
} else {
var image_url = '../viewer/panoramas/thumb/'+main_img;
}
var html = "<img title=\""+main_view_tooltip+"\" id=\"room_alt_0\" class='"+class_active+" rooms_alt tooltip_view' onclick='change_room_alt(\"poi\",0,\""+main_img+"\");' src='"+image_url+"' />";
var option_select = "<option id='0'>"+main_view_tooltip+"</option>";
jQuery.each(rooms_alt, function(index_alt, room_alt) {
var id_alt = room_alt.id;
var img_alt = room_alt.panorama_image;
var view_tooltip = room_alt.view_tooltip;
if(view_tooltip=='') view_tooltip = window.backend_labels.view+" "+id_alt;
if(image==img_alt) class_active = 'active'; else class_active='';
if(window.s3_enabled==1) {
var image_url = window.s3_url+'viewer/panoramas/thumb/'+img_alt;
} else {
var image_url = '../viewer/panoramas/thumb/'+img_alt;
}
html += "<img title=\""+view_tooltip+"\" id=\"room_alt_"+id_alt+"\" class='"+class_active+" rooms_alt tooltip_view' onclick='change_room_alt(\"poi\","+id_alt+",\""+img_alt+"\");' src='"+image_url+"' />";
option_select += "<option id='"+id_alt+"'>"+view_tooltip+"</option>";
});
if(room.virtual_staging!=2) {
$('#visibile_in_views').prop('disabled',false);
$('#visibile_in_views').html(option_select).promise().done(function() {
$('#visibile_in_views').selectpicker('refresh');
});
$('.icon_visible_view').removeClass('hidden');
} else {
$('.icon_visible_view').addClass('hidden');
}
$('.rooms_view_sel').html(html).promise().done(function () {
$('.tooltip_view').tooltipster({
theme: 'tooltipster-borderless',
side: 'bottom',
animation: 'grow',
delay: 0,
arrow: false
});
});
} else {
$('.rooms_view_sel').empty();
$('.icon_visible_view').addClass('hidden');
}
}
});
$('.slick-slide').removeClass("selected_room");
$('.room_'+id_room).addClass("selected_room");
$('#btn_add_poi').attr('onclick','add_poi('+id_room+',\''+image+'\');');
$('#btn_add_poi').css('opacity',0);
$('#btn_list_hs').css('opacity',0);
$('#btn_list_hs').removeClass('disabled');
$('#btn_switch_to_marker').attr('onclick','switch_to_marker('+id_room+')');
$('#btn_switch_to_marker').css('opacity',0);
$('#btn_preview_modal').css('opacity',0);
$('#btn_toggle_fullscreen').css('opacity',0);
$('.rooms_view_sel').hide();
$('.icon_visible_view').hide();
$('#msg_sel_room').hide();
$("#content-wrapper").animate({ scrollTop: $(document).height() }, 200);
get_pois(id_room,image,id_poi_add);
}
window.change_room_alt = function (w,id,image) {
window.id_room_alt_sel = id;
switch(w) {
case 'poi':
select_room_poi(window.id_room_sel,image,null);
break;
case 'marker':
select_room_marker(window.id_room_sel,image,null);
break;
case 'measure':
select_room_measure(window.id_room_sel,image,null);
break;
}
}
window.toggle_visible_view = function (w) {
if($('#check_visibile_view').is(':checked')) {
sessionStorage.setItem('check_visibile_view', 1);
switch(w) {
case 'poi':
$('#panorama_pois .hotspot').each(function() {
var visible_multiview_ids = $(this).attr('visible_multiview_ids');
if(visible_multiview_ids=='') {
$(this).removeClass('hidden_p');
} else {
var array_mv = visible_multiview_ids.split(",");
array_mv = array_mv.map(function(element) {
return parseInt(element);
});
if(array_mv.includes(window.id_room_alt_sel)) {
$(this).removeClass('hidden_p');
} else {
$(this).addClass('hidden_p');
}
}
});
$(window).trigger('resize');
window.viewer.resize();
setTimeout(function() {
adjust_poi_embed_helpers_all();
adjust_marker_embed_helpers_all();
},50);
break;
case 'marker':
$('#panorama_markers .hotspot').each(function() {
var visible_multiview_ids = $(this).attr('visible_multiview_ids');
if(visible_multiview_ids=='') {
$(this).removeClass('hidden_p');
} else {
var array_mv = visible_multiview_ids.split(",");
array_mv = array_mv.map(function(element) {
return parseInt(element);
});
if(array_mv.includes(window.id_room_alt_sel)) {
$(this).removeClass('hidden_p');
} else {
$(this).addClass('hidden_p');
}
}
});
$(window).trigger('resize');
window.viewer.resize();
setTimeout(function() {
adjust_poi_embed_helpers_all();
adjust_marker_embed_helpers_all();
},50);
break;
case 'measure':
$('#panorama_measures .leader-line').each(function() {
var visible_multiview_ids = $(this).attr('visible_multiview_ids');
if(visible_multiview_ids=='') {
$(this).removeClass('hidden_p');
} else {
var array_mv = visible_multiview_ids.split(",");
array_mv = array_mv.map(function(element) {
return parseInt(element);
});
if(array_mv.includes(window.id_room_alt_sel)) {
$(this).removeClass('hidden_p');
} else {
$(this).addClass('hidden_p');
}
}
});
break;
}
} else {
sessionStorage.setItem('check_visibile_view', 0);
switch(w) {
case 'poi':
$('#panorama_pois .hotspot').each(function() {
$(this).removeClass('hidden_p');
});
$(window).trigger('resize');
window.viewer.resize();
setTimeout(function() {
adjust_poi_embed_helpers_all();
adjust_marker_embed_helpers_all();
},50);
break;
case 'marker':
$('#panorama_markers .hotspot').each(function() {
$(this).removeClass('hidden_p');
});
$(window).trigger('resize');
window.viewer.resize();
setTimeout(function() {
adjust_poi_embed_helpers_all();
adjust_marker_embed_helpers_all();
},50);
break;
case 'measure':
$('#panorama_measures .leader-line').each(function() {
$(this).removeClass('hidden_p');
});
break;
}
}
}
window.select_room_measure = function (id_room,image,id_measure_add) {
if(id_room!=window.id_room_sel && !window.switched_page) {
window.currentPitch = 0;
window.currentYaw = 0;
}
if(id_room!=window.id_room_sel) {
window.id_room_alt_sel=0;
}
window.id_room_sel = id_room;
window.switched_page = false;
$('#visibile_in_views').empty();
jQuery.each(window.rooms, function(index, room) {
var id = room.id;
if(id==id_room) {
var rooms_alt = room.rooms_alt;
if(rooms_alt.length>0) {
var main_img = room.panorama_image;
var class_active = '';
if(image==main_img) {
class_active = 'active';
}
var main_view_tooltip = room.main_view_tooltip;
if(main_view_tooltip=='') main_view_tooltip = window.backend_labels.main_view;
if(window.s3_enabled==1) {
var image_url = window.s3_url+'viewer/panoramas/thumb/'+main_img;
} else {
var image_url = '../viewer/panoramas/thumb/'+main_img;
}
var html = "<img title=\""+main_view_tooltip+"\" id=\"room_alt_0\" class='"+class_active+" rooms_alt tooltip_view' onclick='change_room_alt(\"measure\",0,\""+main_img+"\");' src='"+image_url+"' />";
var option_select = "<option id='0'>"+main_view_tooltip+"</option>";
jQuery.each(rooms_alt, function(index_alt, room_alt) {
var id_alt = room_alt.id;
var img_alt = room_alt.panorama_image;
var view_tooltip = room_alt.view_tooltip;
if(view_tooltip=='') view_tooltip = window.backend_labels.view+" "+id_alt;
if(image==img_alt) class_active = 'active'; else class_active='';
if(window.s3_enabled==1) {
var image_url = window.s3_url+'viewer/panoramas/thumb/'+img_alt;
} else {
var image_url = '../viewer/panoramas/thumb/'+img_alt;
}
html += "<img title=\""+view_tooltip+"\" id=\"room_alt_"+id_alt+"\" class='"+class_active+" rooms_alt tooltip_view' onclick='change_room_alt(\"measure\","+id_alt+",\""+img_alt+"\");' src='"+image_url+"' />";
option_select += "<option id='"+id_alt+"'>"+view_tooltip+"</option>";
});
if(room.virtual_staging!=2) {
$('#visibile_in_views').prop('disabled',false);
$('#visibile_in_views').html(option_select).promise().done(function() {
$('#visibile_in_views').selectpicker('refresh');
});
$('.icon_visible_view').removeClass('hidden');
} else {
$('.icon_visible_view').addClass('hidden');
}
$('.rooms_view_sel').html(html).promise().done(function () {
$('.tooltip_view').tooltipster({
theme: 'tooltipster-borderless',
side: 'bottom',
animation: 'grow',
delay: 0,
arrow: false
});
});
} else {
$('.rooms_view_sel').empty();
$('.icon_visible_view').addClass('hidden');
}
}
});
$('.slick-slide').removeClass("selected_room");
$('.room_'+id_room).addClass("selected_room");
$('#btn_add_measure').attr('onclick','add_measure('+id_room+',\''+image+'\');');
$('#btn_add_measure').css('opacity',0);
$('#btn_list_hs').css('opacity',0);
$('#btn_list_hs').removeClass('disabled');
$('#btn_preview_modal').css('opacity',0);
$('#btn_toggle_fullscreen').css('opacity',0);
$('.rooms_view_sel').hide();
$('.icon_visible_view').hide();
$('#msg_sel_room').hide();
$("#content-wrapper").animate({ scrollTop: $(document).height() }, 200);
get_measures(id_room,image,id_measure_add);
}
window.switch_to_marker = function(id_room) {
var yaw = parseFloat(viewer.getYaw());
var pitch = parseFloat(viewer.getPitch());
sessionStorage.setItem('currentYaw',yaw.toString());
sessionStorage.setItem('currentPitch',pitch.toString());
location.href = 'index.php?p=markers&id_room='+id_room;
}
function get_markers(id_room,image,id_marker_add) {
$.ajax({
url: "ajax/get_markers.php",
type: "POST",
data: {
id_room: id_room
},
async: true,
success: function (json) {
var rsp = JSON.parse(json);
window.markers = rsp.markers;
parse_hs_list(window.markers,'marker');
var array_room = rsp.room;
window.markers_initial = JSON.parse(JSON.stringify(window.markers));
initialize_pano_markers(id_room,image,id_marker_add,array_room);
}
});
}
window.click_backlink = function() {
$('#override_pos_add').prop('checked',true);
}
window.add_marker = function (id_room,image,id_room_target=0) {
if($('#backlink_marker').is(':checked')) {
$('#override_pos_add').prop('checked',true);
} else {
$('#override_pos_add').prop('checked',false);
}
$('#btn_new_marker').addClass("disabled");
$('#btn_new_marker').attr('onclick','new_marker('+id_room+',\''+image+'\')');
select_marker_style('icon');
$('#modal_add_marker').modal('show');
get_option_rooms_target('room_target_add',id_room,id_room_target,null,null);
}
window.select_marker_style = function (style_sel) {
$('#dropdown_marker_style').html($('#btn_style_'+style_sel).html());
switch(style_sel) {
case 'icon':
window.embed_type_sel = '';
break;
case 'embed_selection':
window.embed_type_sel = 'selection';
break;
}
}
window.select_marker_style_edit = function (style_sel) {
$('#dropdown_marker_style_edit').html($('#btn_edit_style_'+style_sel).html());
switch(style_sel) {
case 'icon':
window.embed_type_sel = '';
break;
case 'embed_selection':
window.embed_type_sel = 'selection';
break;
}
if(window.embed_type_current!=window.embed_type_sel) {
$('#btn_change_marker_embed_style').removeClass('disabled');
} else {
$('#btn_change_marker_embed_style').addClass('disabled');
}
}
window.change_marker_embed_style = function() {
$('#btn_change_marker_embed_style').addClass('disabled');
confirm_edit_marker(window.marker_id_edit,window.marker_index_edit);
$.ajax({
url: "ajax/change_marker_embed_style.php",
type: "POST",
data: {
id: window.marker_id_edit,
yaw: window.markers[window.marker_index_edit].yaw,
pitch: window.markers[window.marker_index_edit].pitch,
embed_type: window.embed_type_sel
},
async: true,
success: function (json) {
jQuery.each(window.rooms, function(index, room) {
var id = room.id;
var image = room.panorama_image;
if(id==window.markers[window.marker_index_edit].id_room) {
setTimeout(function () {
try {
var yaw = parseFloat(window.viewer.getYaw());
var pitch = parseFloat(window.viewer.getPitch());
} catch (e) {
var yaw = 0;
var pitch = 0;
}
window.currentYaw = yaw;
window.currentPitch = pitch;
select_room_marker(id,image,null);
},250);
}
});
}
});
}
window.add_poi = function (id_room,image) {
window.new_poi_id_room = id_room;
window.new_poi_image = image;
select_poi_style('icon');
$('#modal_add_poi').modal('show');
}
window.select_poi_style = function (style_sel) {
$('#dropdown_poi_style').html($('#btn_style_'+style_sel).html());
switch(style_sel) {
case 'icon':
$('#div_poi_select_content button').removeClass('disabled');
window.embed_type_sel = '';
break;
case 'callout':
$('#div_poi_select_content button').addClass('disabled');
$('#div_poi_select_content button').first().removeClass('disabled');
window.embed_type_sel = 'callout';
break;
case 'embed_image':
$('#div_poi_select_content button').removeClass('disabled');
window.embed_type_sel = 'image';
break;
case 'embed_video':
$('#div_poi_select_content button').addClass('disabled');
$('#div_poi_select_content button').first().removeClass('disabled');
window.embed_type_sel = 'video';
break;
case 'embed_video_transparent':
$('#div_poi_select_content button').addClass('disabled');
$('#div_poi_select_content button').first().removeClass('disabled');
window.embed_type_sel = 'video_transparent';
break;
case 'embed_video_chroma':
$('#div_poi_select_content button').addClass('disabled');
$('#div_poi_select_content button').first().removeClass('disabled');
window.embed_type_sel = 'video_chroma';
break;
case 'embed_object3d':
$('#div_poi_select_content button').removeClass('disabled');
window.embed_type_sel = 'object3d';
break;
case 'embed_gallery':
$('#div_poi_select_content button').addClass('disabled');
$('#div_poi_select_content button').first().removeClass('disabled');
window.embed_type_sel = 'gallery';
break;
case 'embed_link':
$('#div_poi_select_content button').addClass('disabled');
$('#div_poi_select_content button').first().removeClass('disabled');
window.embed_type_sel = 'link';
break;
case 'embed_text':
$('#div_poi_select_content button').removeClass('disabled');
window.embed_type_sel = 'text';
break;
case 'embed_html':
$('#div_poi_select_content button').removeClass('disabled');
window.embed_type_sel = 'html';
break;
case 'embed_selection':
$('#div_poi_select_content button').removeClass('disabled');
window.embed_type_sel = 'selection';
break;
}
}
window.select_poi_content_edit = function (content_sel) {
$('#dropdown_poi_content_edit').html($('#btn_edit_content_' + content_sel).html());
switch(content_sel) {
case 'none':
content_sel='';
break;
}
window.content_sel = content_sel;
if(window.content_current!=window.content_sel) {
$('#btn_change_poi_content').removeClass('disabled');
} else {
$('#btn_change_poi_content').addClass('disabled');
}
}
window.select_poi_style_edit = function (style_sel) {
$('#dropdown_poi_style_edit').html($('#btn_edit_style_'+style_sel).html());
$('#dropdown_poi_content_edit').removeClass('disabled');
switch(style_sel) {
case 'icon':
window.embed_type_sel = '';
break;
case 'callout':
$('#dropdown_poi_content_edit').addClass('disabled');
select_poi_content_edit('none');
$('#btn_change_poi_content').addClass('disabled');
window.embed_type_sel = 'callout';
break;
case 'embed_image':
window.embed_type_sel = 'image';
break;
case 'embed_video':
$('#dropdown_poi_content_edit').addClass('disabled');
select_poi_content_edit('none');
$('#btn_change_poi_content').addClass('disabled');
window.embed_type_sel = 'video';
break;
case 'embed_video_transparent':
$('#dropdown_poi_content_edit').addClass('disabled');
select_poi_content_edit('none');
$('#btn_change_poi_content').addClass('disabled');
window.embed_type_sel = 'video_transparent';
break;
case 'embed_video_chroma':
$('#dropdown_poi_content_edit').addClass('disabled');
select_poi_content_edit('none');
$('#btn_change_poi_content').addClass('disabled');
window.embed_type_sel = 'video_chroma';
break;
case 'embed_object3d':
window.embed_type_sel = 'object3d';
break;
case 'embed_gallery':
$('#dropdown_poi_content_edit').addClass('disabled');
select_poi_content_edit('none');
$('#btn_change_poi_content').addClass('disabled');
window.embed_type_sel = 'gallery';
break;
case 'embed_link':
$('#dropdown_poi_content_edit').addClass('disabled');
select_poi_content_edit('none');
$('#btn_change_poi_content').addClass('disabled');
window.embed_type_sel = 'link';
break;
case 'embed_text':
window.embed_type_sel = 'text';
break;
case 'embed_html':
window.embed_type_sel = 'html';
break;
case 'embed_selection':
window.embed_type_sel = 'selection';
break;
}
if(window.embed_type_current!=window.embed_type_sel) {
$('#btn_change_poi_embed_style').removeClass('disabled');
} else {
$('#btn_change_poi_embed_style').addClass('disabled');
}
}
window.change_poi_embed_style = function() {
var retVal = confirm(window.backend_labels.change_poi_style_msg);
if( retVal == true ) {
$('#btn_change_poi_embed_style').addClass('disabled');
confirm_edit_poi(window.poi_id_edit,window.poi_index_edit);
$.ajax({
url: "ajax/change_poi_embed_style.php",
type: "POST",
data: {
id: window.poi_id_edit,
yaw: window.pois[window.poi_index_edit].yaw,
pitch: window.pois[window.poi_index_edit].pitch,
embed_type: window.embed_type_sel,
embed_type_current: embed_type_current
},
async: true,
success: function (json) {
jQuery.each(window.rooms, function(index, room) {
var id = room.id;
var image = room.panorama_image;
if(id==window.pois[window.poi_index_edit].id_room) {
setTimeout(function () {
try {
var yaw = parseFloat(window.viewer.getYaw());
var pitch = parseFloat(window.viewer.getPitch());
} catch (e) {
var yaw = 0;
var pitch = 0;
}
window.currentYaw = yaw;
window.currentPitch = pitch;
select_room_poi(id,image,null);
},250);
}
});
}
});
}
}
window.change_poi_content = function() {
var retVal = confirm(window.backend_labels.change_poi_style_msg);
if( retVal == true ) {
$('#btn_change_poi_content').addClass('disabled');
confirm_edit_poi(window.poi_id_edit,window.poi_index_edit);
$.ajax({
url: "ajax/change_poi_content.php",
type: "POST",
data: {
id: window.poi_id_edit,
content_type: window.content_sel
},
async: true,
success: function (json) {
jQuery.each(window.rooms, function(index, room) {
var id = room.id;
var image = room.panorama_image;
if(id==window.pois[window.poi_index_edit].id_room) {
setTimeout(function () {
try {
var yaw = parseFloat(window.viewer.getYaw());
var pitch = parseFloat(window.viewer.getPitch());
} catch (e) {
var yaw = 0;
var pitch = 0;
}
window.currentYaw = yaw;
window.currentPitch = pitch;
select_room_poi(id,image,null);
},250);
}
});
}
});
}
}
var poi_embed_ids = [];
window.init_poi_embed = function(force=false) {
window.sync_poi_embed_enabled = true;
poi_embed_ids = [];
$('.draggable_poi_embed').remove();
$('.poi_embed').each(function () {
if(!$(this).hasClass('hidden_p')) {
var id = $(this).attr('data-id');
poi_embed_ids.push(id);
var initialized = $(this).attr('data-initialized');
var transform3d = $(this).attr('data-transform3d');
if((initialized==0 || force) && transform3d==1) {
$(this).attr('data-initialized',1);
poi_embed_make_transformable('.poi_embed_'+id, id, function(element, H) {});
}
} else {
$(this).attr('data-initialized',0);
}
});
adjust_poi_embed_helpers_all();
}
var marker_embed_ids = [];
window.init_marker_embed = function(force=false) {
window.sync_marker_embed_enabled = true;
marker_embed_ids = [];
$('.draggable_marker_embed').remove();
$('.marker_embed').each(function () {
if(!$(this).hasClass('hidden_p')) {
var id = $(this).attr('data-id');
marker_embed_ids.push(id);
var initialized = $(this).attr('data-initialized');
var transform3d = $(this).attr('data-transform3d');
if((initialized==0 || force) && transform3d==1) {
$(this).attr('data-initialized',1);
marker_embed_make_transformable('.marker_embed_'+id, id, function(element, H) {});
}
} else {
$(this).attr('data-initialized',0);
}
});
adjust_marker_embed_helpers_all();
}
Math.getDistance = function( x1, y1, x2, y2 ) {
var xs = x2 - x1, ys = y2 - y1;
xs *= xs;
ys *= ys;
return Math.sqrt( xs + ys );
};
window.adjust_poi_embed_helpers_all = function () {
for(var i=0; i<poi_embed_ids.length;i++) {
var id = poi_embed_ids[i];
var initialized = $('.poi_embed_'+id).attr('data-initialized');
var transform3d = $('.poi_embed_'+id).attr('data-transform3d');
var type = $('.poi_embed_'+id).attr('data-type');
if(transform3d==0) {
$('.poi_embed_'+id).css({'top':0,'left':0});
switch(type) {
case 'image':
$('.poi_embed_'+id+' img').css('opacity',1);
break;
case 'video':
case 'video_transparent':
if($('.poi_embed_'+id).css('visibility')=='visible') {
$('#video_embed_'+id).css('opacity',1);
$('.poi_embed_'+id+' video').css('opacity',1);
}
break;
case 'video_chroma':
if($('.poi_embed_'+id).css('visibility')=='visible') {
$('#canvas_chroma_'+id).css('opacity',1);
}
break;
case 'object3d':
$('.poi_embed_'+id+' div').css('opacity',1);
break;
case 'gallery':
$('.poi_embed_'+id+' .poi_embed_gallery').css('opacity',1);
break;
case 'link':
$('.poi_embed_'+id+' div').css('opacity',1);
$('.poi_embed_'+id+' iframe').css('opacity',1);
break;
case 'text':
case 'selection':
case 'html':
$('.poi_embed_'+id+' div').css('opacity',1);
break;
}
} else if(initialized==1) {
var id = $('.poi_embed_'+id).attr('data-id');
var pos_1 = ($('#poi_embded_helper_'+id+'_1').offset());
pos_1.top=pos_1.top+8;
pos_1.left=pos_1.left+8;
$('#draggable_'+id+'_1').css({'top':pos_1.top+'px','left':pos_1.left+'px'});
var pos_2 = ($('#poi_embded_helper_'+id+'_2').offset());
pos_2.top=pos_2.top+8;
pos_2.left=pos_2.left+8;
$('#draggable_'+id+'_2').css({'top':pos_2.top+'px','left':pos_2.left+'px'});
var pos_3 = ($('#poi_embded_helper_'+id+'_3').offset());
pos_3.top=pos_3.top+8;
pos_3.left=pos_3.left+8;
$('#draggable_'+id+'_3').css({'top':pos_3.top+'px','left':pos_3.left+'px'});
var pos_4 = ($('#poi_embded_helper_'+id+'_4').offset());
pos_4.top=pos_4.top+8;
pos_4.left=pos_4.left+8;
$('#draggable_'+id+'_4').css({'top':pos_4.top+'px','left':pos_4.left+'px'});
var count_offscreen = 0;
if($('#poi_embded_helper_'+id+'_1').attr('data-offscreen')==1) {
count_offscreen++;
}
if($('#poi_embded_helper_'+id+'_2').attr('data-offscreen')==1) {
count_offscreen++;
}
if($('#poi_embded_helper_'+id+'_3').attr('data-offscreen')==1) {
count_offscreen++;
}
if($('#poi_embded_helper_'+id+'_4').attr('data-offscreen')==1) {
count_offscreen++;
}
if(pos_1.left!=8 && pos_1.top!=8 && pos_2.left!=8 && pos_2.top!=8 && pos_3.left!=8 && pos_3.top!=8 && pos_4.left!=8 && pos_4.top!=8) {
$('.poi_embed_'+id).removeClass('hidden');
if($('.poi_embed_'+id).css('visibility')=='visible' && count_offscreen<=2) {
$('.poi_embed_'+id).show();
poi_embed_apply_transform($('.poi_embed_'+id), poi_embed_originals_pos[id], [[pos_1.left, pos_1.top],[pos_2.left, pos_2.top],[pos_3.left, pos_3.top],[pos_4.left, pos_4.top]]);
var current_transform = $('.poi_embed_'+id).css('transform');
var pos1_top = $('#poi_embded_helper_'+id+'_1').position().top;
var pos2_top = $('#poi_embded_helper_'+id+'_2').position().top;
var pos3_top = $('#poi_embded_helper_'+id+'_3').position().top;
var pos4_top = $('#poi_embded_helper_'+id+'_4').position().top;
if(current_transform!="none" && pos1_top!=0 && pos2_top!=0 && pos3_top!=0 && pos4_top!=0) {
switch(type) {
case 'image':
$('.poi_embed_'+id+' img').css('opacity',1);
break;
case 'video':
case 'video_transparent':
$('#video_embed_'+id).css('opacity',1);
$('.poi_embed_'+id+' video').css('opacity',1);
break;
case 'video_chroma':
$('#canvas_chroma_'+id).css('opacity',1);
break;
case 'object3d':
$('.poi_embed_'+id+' div').css('opacity',1);
break;
case 'gallery':
$('.poi_embed_'+id+' .poi_embed_gallery').css('opacity',1);
break;
case 'link':
$('.poi_embed_'+id+' div').css('opacity',1);
$('.poi_embed_'+id+' iframe').css('opacity',1);
break;
case 'text':
case 'selection':
case 'html':
$('.poi_embed_'+id+' div').css('opacity',1);
break;
}
$('.poi_embed_'+id+' .empty_embed').css('opacity',0.5);
} else {
$('.poi_embed_'+id).addClass('hidden');
$('.poi_embed_'+id).hide();
}
} else {
$('.poi_embed_'+id).hide();
$('.poi_embed_'+id+' .empty_embed').css('opacity',0);
switch(type) {
case 'image':
$('.poi_embed_'+id+' img').css('opacity',0);
break;
case 'video':
$('#video_embed_'+id).css('opacity',0);
$('.poi_embed_'+id+' video').css('opacity',0);
break;
case 'gallery':
$('.poi_embed_'+id+' .poi_embed_gallery').css('opacity',0);
break;
case 'link':
$('.poi_embed_'+id+' div').css('opacity',0);
$('.poi_embed_'+id+' iframe').css('opacity',0);
break;
case 'text':
case 'selection':
case 'html':
$('.poi_embed_'+id+' div').css('opacity',0);
break;
case 'object3d':
$('.poi_embed_'+id+' div').css('opacity',0);
break;
}
}
} else {
$('.poi_embed_'+id).addClass('hidden');
$('.poi_embed_'+id).hide();
}
}
}
}
window.adjust_marker_embed_helpers_all = function () {
for(var i=0; i<marker_embed_ids.length;i++) {
var id = marker_embed_ids[i];
var initialized = $('.marker_embed_'+id).attr('data-initialized');
var transform3d = $('.marker_embed_'+id).attr('data-transform3d');
var type = $('.marker_embed_'+id).attr('data-type');
if(transform3d==0) {
$('.marker_embed_'+id).css({'top':0,'left':0});
switch(type) {
case 'selection':
$('.marker_embed_'+id+' div').css('opacity',1);
break;
}
} else if(initialized==1) {
var id = $('.marker_embed_'+id).attr('data-id');
var pos_1 = ($('#marker_embded_helper_'+id+'_1').offset());
pos_1.top=pos_1.top+8;
pos_1.left=pos_1.left+8;
$('#draggable_'+id+'_1').css({'top':pos_1.top+'px','left':pos_1.left+'px'});
var pos_2 = ($('#marker_embded_helper_'+id+'_2').offset());
pos_2.top=pos_2.top+8;
pos_2.left=pos_2.left+8;
$('#draggable_'+id+'_2').css({'top':pos_2.top+'px','left':pos_2.left+'px'});
var pos_3 = ($('#marker_embded_helper_'+id+'_3').offset());
pos_3.top=pos_3.top+8;
pos_3.left=pos_3.left+8;
$('#draggable_'+id+'_3').css({'top':pos_3.top+'px','left':pos_3.left+'px'});
var pos_4 = ($('#marker_embded_helper_'+id+'_4').offset());
pos_4.top=pos_4.top+8;
pos_4.left=pos_4.left+8;
$('#draggable_'+id+'_4').css({'top':pos_4.top+'px','left':pos_4.left+'px'});
var count_offscreen = 0;
if($('#marker_embded_helper_'+id+'_1').attr('data-offscreen')==1) {
count_offscreen++;
}
if($('#marker_embded_helper_'+id+'_2').attr('data-offscreen')==1) {
count_offscreen++;
}
if($('#marker_embded_helper_'+id+'_3').attr('data-offscreen')==1) {
count_offscreen++;
}
if($('#marker_embded_helper_'+id+'_4').attr('data-offscreen')==1) {
count_offscreen++;
}
if(pos_1.left!=8 && pos_1.top!=8 && pos_2.left!=8 && pos_2.top!=8 && pos_3.left!=8 && pos_3.top!=8 && pos_4.left!=8 && pos_4.top!=8) {
$('.marker_embed_'+id).removeClass('hidden');
if($('.marker_embed_'+id).css('visibility')=='visible' && count_offscreen<=2) {
$('.marker_embed_'+id).show();
poi_embed_apply_transform($('.marker_embed_'+id), marker_embed_originals_pos[id], [[pos_1.left, pos_1.top],[pos_2.left, pos_2.top],[pos_3.left, pos_3.top],[pos_4.left, pos_4.top]]);
var current_transform = $('.marker_embed_'+id).css('transform');
var pos1_top = $('#marker_embded_helper_'+id+'_1').position().top;
var pos2_top = $('#marker_embded_helper_'+id+'_2').position().top;
var pos3_top = $('#marker_embded_helper_'+id+'_3').position().top;
var pos4_top = $('#marker_embded_helper_'+id+'_4').position().top;
if(current_transform!="none" && pos1_top!=0 && pos2_top!=0 && pos3_top!=0 && pos4_top!=0) {
$('.marker_embed_'+id+' .empty_embed').css('opacity',0.5);
switch(type) {
case 'selection':
$('.marker_embed_'+id+' div').css('opacity',1);
break;
}
} else {
$('.marker_embed_'+id).addClass('hidden');
$('.marker_embed_'+id).hide();
}
} else {
$('.marker_embed_'+id).hide();
$('.marker_embed_'+id+' .empty_embed').css('opacity',0);
switch(type) {
case 'selection':
$('.marker_embed_'+id+' div').css('opacity',0);
break;
}
}
} else {
$('.marker_embed_'+id).addClass('hidden');
$('.marker_embed_'+id).hide();
}
}
}
}
var poi_embed_galleries = [];
window.hotspot_embed = function(hotSpotDiv, args) {
var id = args.id;
var type = args.embed_type;
if(args.transform3d==1) {
var size = args.embed_size.split(",");
var width = size[0]+'px';
var height = size[1]+'px';
} else {
var width = '100%';
var height = '100%';
}
hotSpotDiv.style.zIndex = args.zIndex;
hotSpotDiv.setAttribute('draggable',false);
hotSpotDiv.classList.add('noselect');
hotSpotDiv.classList.add('poi_embed');
hotSpotDiv.classList.add('poi_embed_'+id);
hotSpotDiv.classList.add('hotspot_'+id);
hotSpotDiv.setAttribute('data-id',id);
hotSpotDiv.setAttribute('data-type',type);
hotSpotDiv.setAttribute('data-transform3d',args.transform3d);
hotSpotDiv.setAttribute('data-initialized',0);
hotSpotDiv.setAttribute('visible_multiview_ids',args.visible_multiview_ids);
if(args.embed_content!='') {
switch(type) {
case 'image':
var img = document.createElement('img');
img.setAttribute('draggable',false);
var embed_content = args.embed_content;
if(window.is_editing) {
if($('#poi_embed_content').is(':visible')) {
embed_content = $('#poi_embed_content').val();
} else {
$('.input_lang[data-target-id="poi_embed_content"]').each(function() {
if($(this).is(':visible')) {
embed_content = $(this).val();
}
});
}
}
if(embed_content.startsWith("http") || embed_content.startsWith("//")) {
img.src = embed_content;
} else {
if(window.s3_enabled==1) {
img.src = window.s3_url+'viewer/'+embed_content;
} else {
img.src = '../viewer/'+embed_content;
}
}
if(args.transform3d==0) {
if(args.embed_size=='') {
var img_tmp = new Image();
img_tmp.onload = function () {
var height = img_tmp.height;
var width = img_tmp.width;
var ratio = width / height;
if(width>=height) {
hotSpotDiv.style = "width:300px;height:" + (300/ratio) + "px;";
args.embed_size = '300,'+(300/ratio);
} else {
hotSpotDiv.style = "width:100px;height:" + (100/ratio) + "px;";
args.embed_size = '100,'+(100/ratio);
}
clearInterval(interval_adjust_embed_helpers_all);
interval_adjust_embed_helpers_all = setInterval(function () {
adjust_poi_embed_helpers_all();
adjust_marker_embed_helpers_all();
count_adjust_embed_helpers_all++;
if(count_adjust_embed_helpers_all>=500) {
clearInterval(interval_adjust_embed_helpers_all);
count_adjust_embed_helpers_all=0;
}
},1);
}
img_tmp.src = img.src;
} else {
var size = args.embed_size.split(",");
var width = size[0]+'px';
var height = size[1]+'px';
hotSpotDiv.style = "width:"+width+";height:"+height;
}
}
img.style = "width:"+width+";height:"+height+";margin: 0 auto;vertical-align:middle;opacity:0;";
hotSpotDiv.appendChild(img);
clearInterval(interval_adjust_embed_helpers_all);
interval_adjust_embed_helpers_all = setInterval(function () {
adjust_poi_embed_helpers_all();
adjust_marker_embed_helpers_all();
count_adjust_embed_helpers_all++;
if(count_adjust_embed_helpers_all>=500) {
clearInterval(interval_adjust_embed_helpers_all);
count_adjust_embed_helpers_all=0;
}
},1);
break;
case 'text':
var div = document.createElement('div');
div.setAttribute('draggable',false);
div.classList.add('poi_embed_text');
hotSpotDiv.classList.add('no_outline');
var embed_content = args.embed_content.split(' border-width')[0];
if(window.is_editing) {
if($('#poi_embed_content_html').is(':visible')) {
embed_content = window.poi_embed_content_html_editor.root.innerHTML;
} else {
$('.input_lang[data-target-id="poi_embed_content_html"]').each(function() {
if($(this).is(':visible')) {
var lang = $(this).attr('data-lang');
embed_content = window.poi_embed_content_html_editor_lang[lang].root.innerHTML;
}
});
}
}
var style = 'border-width'+args.embed_content.split(' border-width')[1];
div.innerHTML = embed_content;
var bg_color = args.background;
var color = args.color;
div.style = "width:"+width+";height:"+height+";margin: 0 auto;vertical-align:middle;opacity:0;background-color:"+bg_color+";border-color:"+color+";border-width:2px;"+style;
hotSpotDiv.appendChild(div);
break;
case 'html':
var div = document.createElement('div');
div.setAttribute('draggable',false);
div.classList.add('poi_embed_html');
hotSpotDiv.classList.add('no_outline');
var embed_content = args.embed_content;
if(window.is_editing) {
if($('#poi_embed_content_html_sc').is(':visible')) {
embed_content = window.poi_embed_content_html_sc.getValue();
} else {
$('.input_lang[data-target-id="poi_embed_content_html_sc"]').each(function() {
if($(this).is(':visible')) {
var lang = $(this).attr('data-lang');
embed_content = window.poi_embed_content_html_sc_lang[lang].getValue();
}
});
}
}
div.innerHTML = embed_content;
div.style = "width:"+width+";height:"+height+";margin: 0 auto;vertical-align:middle;opacity:0;";
hotSpotDiv.appendChild(div);
break;
case 'selection':
var div = document.createElement('div');
div.setAttribute('draggable',false);
div.classList.add('poi_embed_selection');
hotSpotDiv.classList.add('no_outline');
var bg_color = args.background;
var color = args.color;
if(args.embed_params!='') {
div.style = "width:"+width+";height:"+height+";margin: 0 auto;vertical-align:middle;opacity:0;background-color:transparent;border-color:rgba(255,255,255,0.4);";
} else {
div.style = "width:"+width+";height:"+height+";margin: 0 auto;vertical-align:middle;opacity:0;background-color:"+bg_color+";border-color:"+color+";"+args.embed_content;
}
var canvas = document.createElement('canvas');
canvas.id = 'canvas_selection_'+args.id;
canvas.width = width.replace('px','');
canvas.height = height.replace('px','');
div.appendChild(canvas);
hotSpotDiv.appendChild(div);
if(args.embed_params!='') {
var canvas = document.getElementById('canvas_selection_'+id);
var border = args.embed_content.replace('border-width:','').replace('px;','');
var points = JSON.parse(args.embed_params);
draw_polygon(canvas.getContext("2d"),points,border,bg_color,color);
}
break;
case 'gallery':
var div = document.createElement('div');
div.classList.add('glide');
div.classList.add('poi_embed_gallery');
div.classList.add('poi_embed_gallery_'+args.id);
div.style = "width:"+width+";height:"+height+";margin: 0 auto;vertical-align:middle;opacity:0;";
if(window.s3_enabled==1) {
var image_url = window.s3_url+'viewer/gallery/'+args.embed_content;
} else {
var image_url = '../viewer/gallery/'+args.embed_content;
}
var html = '<div class="glide__track" data-glide-el="track"><ul class="glide__slides">';
html += '<li style="height:'+height+'px" class="glide__slide"><img style="object-fit: contain;width: 100%;height: 100%" src="'+image_url+'" /></li>';
html += '</ul>' +
'<div class="glide__arrows" data-glide-el="controls">' +
' <i class="glide__arrow glide__arrow--left fas fa-chevron-left" data-glide-dir="<"></i>' +
' <i class="glide__arrow glide__arrow--right fas fa-chevron-right" data-glide-dir=">"></i>' +
' </div>' +
'</div>';
div.innerHTML=html;
hotSpotDiv.appendChild(div);
poi_embed_galleries[args.id] = new Glide('.poi_embed_gallery_'+args.id,{
type: 'carousel',
startAt: 0,
perView: 1
});
poi_embed_galleries[args.id].mount();
break;
case 'video_chroma':
var video = document.createElement('video');
video.setAttribute('draggable',false);
video.id = "video_embed_"+id;
video.classList.add('noselect');
video.crossOrigin = 'anonymous';
video.preload = 'auto';
video.muted = true;
video.volume = 0;
video.loop = true;
video.setAttribute('playsinline', '');
video.setAttribute('webkit-playsinline','');
video.style = "width:"+width+";height:"+height+";margin: 0 auto;vertical-align:middle;opacity:0;";
var embed_content = args.embed_content;
if(window.is_editing) {
if($('#poi_embed_content').is(':visible')) {
embed_content = $('#poi_embed_content').val();
} else {
$('.input_lang[data-target-id="poi_embed_content"]').each(function() {
if($(this).is(':visible')) {
embed_content = $(this).val();
}
});
}
}
if(window.s3_enabled==1) {
video.src = window.s3_url+'viewer/'+embed_content+'#t=2';
} else {
video.src = '../viewer/'+embed_content+'#t=2';
}
window.video_chroma = video;
var canvas = document.createElement('canvas');
canvas.id = "canvas_chroma_"+id;
canvas.setAttribute('width', width.replace('px',''));
canvas.setAttribute('height', height.replace('px',''));
canvas.style = "width:"+width+";height:"+height+";margin: 0 auto;vertical-align:middle;opacity:0;position:absolute;top:0;left:0;";
hotSpotDiv.appendChild(canvas);
var ctx_chroma = canvas.getContext('2d');
window.ctx_chroma = ctx_chroma;
var c_chroma_tmp = document.createElement('canvas');
c_chroma_tmp.id = 'c_chroma_tmp_'+id;
c_chroma_tmp.setAttribute('width', width.replace('px',''));
c_chroma_tmp.setAttribute('height', height.replace('px',''));
var ctx_chroma_tmp = c_chroma_tmp.getContext('2d');
window.ctx_chroma_tmp = ctx_chroma_tmp;
window.width_chroma = width.replace('px','');
window.height_chroma = height.replace('px','');
video.addEventListener('loadeddata', function() {
var params = args.params;
if(window.is_editing && window.selected_language!='') {
if(window.selected_language!=window.default_language) {
var color = $('.input_lang[data-target-id="chroma_color"][data-lang="'+window.selected_language+'"]').val();
var chroma_tolerance = $('.input_lang[data-target-id="chroma_tolerance"][data-lang="'+window.selected_language+'"]').val();
} else {
var color = $('#chroma_color').val();
var chroma_tolerance = $('#chroma_tolerance').val();
}
var chroma_color = color.toString().replace("rgb(","").replace(")","");
params = chroma_color+','+chroma_tolerance;
}
remove_background_video_chroma(video,ctx_chroma_tmp,ctx_chroma,width.replace('px',''),height.replace('px',''),params,true);
$('#btn_background_removal').removeClass('disabled');
});
video.addEventListener('play', function() {
var params = args.params;
if(window.is_editing && window.selected_language!='') {
if (window.selected_language != window.default_language) {
var color = $('.input_lang[data-target-id="chroma_color"][data-lang="' + window.selected_language + '"]').val();
var chroma_tolerance = $('.input_lang[data-target-id="chroma_tolerance"][data-lang="' + window.selected_language + '"]').val();
} else {
var color = $('#chroma_color').val();
var chroma_tolerance = $('#chroma_tolerance').val();
}
var chroma_color = color.toString().replace("rgb(", "").replace(")", "");
params = chroma_color + ',' + chroma_tolerance;
}
remove_background_video_chroma(video, ctx_chroma_tmp, ctx_chroma, width.replace('px', ''), height.replace('px', ''),params,false);
});
hotSpotDiv.appendChild(video);
video.load();
break;
case 'video_transparent':
var video = document.createElement('video');
video.setAttribute('draggable',false);
video.id = "video_embed_"+id;
video.setAttribute("preload", "auto");
video.setAttribute('playsinline', '');
video.setAttribute('webkit-playsinline','');
video.style = "width:"+width+";height:"+height+";margin: 0 auto;vertical-align:middle;opacity:0;";
var embed_content = args.embed_content;
if(window.is_editing) {
if($('#poi_embed_content').is(':visible')) {
embed_content = $('#poi_embed_content').val();
} else {
$('.input_lang[data-target-id="poi_embed_content"]').each(function() {
if($(this).is(':visible')) {
embed_content = $(this).val();
}
});
}
}
var array_videos = embed_content.split(",");
var mov_source = '', webm_source = '';
jQuery.each(array_videos, function(index_s, video_s) {
if(video_s.split('.').pop().toLowerCase()=='mov') {
mov_source = video_s;
}
if(video_s.split('.').pop().toLowerCase()=='webm') {
webm_source = video_s;
}
});
if(mov_source!='' && webm_source!='') {
if(supportsHEVCAlpha()) {
if(window.s3_enabled==1) {
video.src = window.s3_url+'viewer/'+mov_source+'#t=2';
} else {
video.src = '../viewer/'+mov_source+'#t=2';
}
} else {
if(window.s3_enabled==1) {
video.src = window.s3_url+'viewer/'+webm_source+'#t=2';
} else {
video.src = '../viewer/'+webm_source+'#t=2';
}
}
} else if(mov_source!='') {
if(window.s3_enabled==1) {
video.src = window.s3_url+'viewer/'+mov_source+'#t=2';
} else {
video.src = '../viewer/'+mov_source+'#t=2';
}
} else if(webm_source!='') {
if(window.s3_enabled==1) {
video.src = window.s3_url+'viewer/'+webm_source+'#t=2';
} else {
video.src = '../viewer/'+webm_source+'#t=2';
}
}
hotSpotDiv.appendChild(video);
break;
case 'video':
var video = document.createElement('video');
video.setAttribute('draggable',false);
var embed_content = args.embed_content;
if(window.is_editing) {
if($('#poi_embed_content').is(':visible')) {
embed_content = $('#poi_embed_content').val();
} else {
$('.input_lang[data-target-id="poi_embed_content"]').each(function() {
if($(this).is(':visible')) {
embed_content = $(this).val();
}
});
}
}
video.id = "video_embed_"+id;
video.classList.add('video-js');
video.classList.add('vjs-default-skin');
video.classList.add('vjs-big-play-centered');
video.classList.add('vjs-fill');
video.setAttribute("preload", "metadata");
video.setAttribute('playsinline', '');
video.setAttribute('webkit-playsinline','');
video.style = "width:"+width+";height:"+height+";margin: 0 auto;vertical-align:middle;opacity:0;";
if(embed_content.includes("youtu")) {
video.setAttribute('data-setup','{ "techOrder":["youtube"],"sources":[{"type":"video/youtube","src":"'+embed_content+'"}],"youtube":{"iv_load_policy":3,"loop":1,"playsinline":1,"showinfo":0,"fs":0,"disablekb":1,"autoplay":0}}');
} else {
var source = document.createElement('source');
if(embed_content.startsWith("http") || embed_content.startsWith("//")) {
source.src = embed_content+'#t=2';
} else {
if(window.s3_enabled==1) {
source.src = window.s3_url+'viewer/'+embed_content+'#t=2';
} else {
source.src = '../viewer/'+embed_content+'#t=2';
}
}
source.type = 'video/mp4';
video.appendChild(source);
}
if(args.transform3d==0) {
if(args.embed_size=='') {
video.addEventListener( "loadedmetadata", function (e) {
var width = this.videoWidth, height = this.videoHeight;
var ratio = width / height;
if(width>=height) {
hotSpotDiv.style = "width:300px;height:" + (300/ratio) + "px;";
args.embed_size = '300,'+(300/ratio);
} else {
hotSpotDiv.style = "width:200px;height:" + (200/ratio) + "px;";
args.embed_size = '200,'+(200/ratio);
}
clearInterval(interval_adjust_embed_helpers_all);
interval_adjust_embed_helpers_all = setInterval(function () {
adjust_poi_embed_helpers_all();
adjust_marker_embed_helpers_all();
count_adjust_embed_helpers_all++;
if(count_adjust_embed_helpers_all>=500) {
clearInterval(interval_adjust_embed_helpers_all);
count_adjust_embed_helpers_all=0;
}
},1);
}, false );
} else {
var size = args.embed_size.split(",");
var width = size[0]+'px';
var height = size[1]+'px';
hotSpotDiv.style = "width:"+width+";height:"+height;
}
}
hotSpotDiv.appendChild(video);
clearInterval(interval_adjust_embed_helpers_all);
interval_adjust_embed_helpers_all = setInterval(function () {
adjust_poi_embed_helpers_all();
adjust_marker_embed_helpers_all();
count_adjust_embed_helpers_all++;
if(count_adjust_embed_helpers_all>=500) {
clearInterval(interval_adjust_embed_helpers_all);
count_adjust_embed_helpers_all=0;
}
},1);
try {
if (typeof video_embeds[id] !== 'undefined') {
video_embeds[id].dispose();
}
} catch (e) {}
video_embeds[id] = videojs('video_embed_'+id, {controls: false}, function() {
$('.poi_embed_'+id+' video').css({'width':'100%','height':'100%'});
});
break;
case 'link':
var div = document.createElement('div');
div.classList.add('poi_embed_link');
div.classList.add('poi_embed_link_'+args.id);
var embed_content = args.embed_content;
if(window.is_editing) {
if($('#poi_embed_content').is(':visible')) {
embed_content = $('#poi_embed_content').val();
} else {
$('.input_lang[data-target-id="poi_embed_content"]').each(function() {
if($(this).is(':visible')) {
embed_content = $(this).val();
}
});
}
}
div.style = "width:"+width+";height:"+height+";margin: 0 auto;vertical-align:middle;opacity:0;";
var html = '<iframe frameborder="0" marginheight="0" marginwidth="0" style="border:none;" width="'+width+'px" height="'+height+'px" src="'+embed_content+'"></iframe>';
div.innerHTML=html;
hotSpotDiv.appendChild(div);
break;
case 'object3d':
var div = document.createElement('div');
div.classList.add('poi_embed_object3d');
div.classList.add('poi_embed_object3d_'+args.id);
div.style = "width:"+width+";height:"+height+";margin: 0 auto;vertical-align:middle;opacity:0;";
if(args.embed_params!='') {
var tmp = args.embed_params.split(",");
if(tmp[0]!==undefined) {
var camera_coords = tmp[0];
var coords_part = camera_coords.split(" ");
camera_coords = coords_part[0]+" "+coords_part[1]+" 100%";
} else {
var camera_coords = "";
}
if(tmp[2]!==undefined) {
var exposure = tmp[2];
} else {
var exposure = 1;
}
if(tmp[3]!==undefined) {
var environment = tmp[3];
} else {
var environment = 'legacy';
}
if(tmp[4]!==undefined) {
var shadow_intensity = tmp[4];
} else {
var shadow_intensity = 1;
}
if(tmp[5]!==undefined) {
var shadow_softness = tmp[5];
} else {
var shadow_softness = 0.5;
}
if(tmp[6]!==undefined) {
var zoom_deg = (180-tmp[6])+'deg';
} else {
var zoom_deg = 'auto';
}
if(tmp[7]!==undefined) {
var animation = tmp[7];
if(animation=='none') {
animation = '';
var autoplay = '';
} else {
var autoplay = 'autoplay';
}
} else {
var animation = '';
var autoplay = '';
}
} else {
var camera_coords = "";
var exposure = 1;
var environment = 'legacy';
var shadow_intensity = 1;
var shadow_softness = 0.5;
var zoom_deg = 'auto';
var animation = '';
var autoplay = '';
}
var embed_content = args.embed_content;
if(window.is_editing) {
if($('#poi_embed_content').is(':visible')) {
embed_content = $('#poi_embed_content').val();
} else {
$('.input_lang[data-target-id="poi_embed_content"]').each(function() {
if($(this).is(':visible')) {
embed_content = $(this).val();
}
});
}
}
if(window.s3_enabled==1) {
var glb_url = window.s3_url+'viewer/'+embed_content;
} else {
var glb_url = '../viewer/'+embed_content;
}
if(environment=='panorama') {
if(window.s3_enabled==1) {
environment = window.s3_url+'viewer/panoramas/lowres/'+window.panorama_image+'?s3=1';
} else {
environment = '../viewer/panoramas/lowres/'+window.panorama_image;
}
}
if(window.is_editing) {
var html = '<model-viewer '+autoplay+' animation-name="'+animation+'" min-field-of-view="'+zoom_deg+'" max-field-of-view="'+zoom_deg+'" disable-tap disable-pan disable-zoom id="object3d_'+args.id+'" src="'+glb_url+'" alt="" exposure="'+exposure+'" environment-image="'+environment+'" shadow-intensity="'+shadow_intensity+'" shadow-softness="'+shadow_softness+'" bounds="tight" camera-orbit="'+camera_coords+'" camera-controls></model-viewer>';
} else {
var html = '<model-viewer '+autoplay+' animation-name="'+animation+'" min-field-of-view="'+zoom_deg+'" max-field-of-view="'+zoom_deg+'" disable-tap disable-pan disable-zoom id="object3d_'+args.id+'" src="'+glb_url+'" alt="" exposure="'+exposure+'" environment-image="'+environment+'" shadow-intensity="'+shadow_intensity+'" shadow-softness="'+shadow_softness+'" bounds="tight" interaction-prompt="none" camera-orbit="'+camera_coords+'"></model-viewer>';
}
div.innerHTML=html;
hotSpotDiv.appendChild(div);
var modelViewer = document.querySelector("model-viewer#object3d_"+args.id);
modelViewer.addEventListener("camera-change", (ev) => {
var camera_orbit = modelViewer.getCameraOrbit().toString();
if(args.embed_params!='') {
var tmp = args.embed_params.split(",");
if(tmp[1]!==undefined) {
var interaction = tmp[1];
} else {
var interaction = 0;
}
if(tmp[2]!==undefined) {
var exposure = tmp[2];
} else {
var exposure = 1;
}
if(tmp[3]!==undefined) {
var environment = tmp[3];
} else {
var environment = 'legacy';
}
if(tmp[4]!==undefined) {
var shadow_intensity = tmp[4];
} else {
var shadow_intensity = 1;
}
if(tmp[5]!==undefined) {
var shadow_softness = tmp[5];
} else {
var shadow_softness = 0.5;
}
if(tmp[6]!==undefined) {
var zoom_deg = tmp[6];
} else {
var zoom_deg = 'auto';
}
if(tmp[7]!==undefined) {
var animation = tmp[7];
} else {
var animation = 'none';
}
} else {
var interaction = 0;
var exposure = 1;
var environment = 'legacy';
var shadow_intensity = 1;
var shadow_softness = 0.5;
var zoom_deg = 'auto';
var animation = 'none';
}
args.embed_params = camera_orbit+","+interaction+","+exposure+","+environment+","+shadow_intensity+","+shadow_softness+','+zoom_deg+','+animation;
});
break;
}
} else {
var div = document.createElement('div');
div.setAttribute('draggable', false);
div.classList.add('empty_embed');
div.style = "width:" + width + ";height:" + height + ";margin: 0 auto;vertical-align:middle;background-color:rgba(255,255,255,0.6);opacity:0;";
hotSpotDiv.appendChild(div);
}
}
window.remove_background_video_chroma = function(video_chroma,ctx_chroma_tmp,ctx_chroma,width,height,params,force=false) {
if (!force && (video_chroma.paused || video_chroma.ended)) { return; }
if(!force) {
if(window.selected_language!='') {
if (window.selected_language != window.default_language) {
var color = $('.input_lang[data-target-id="chroma_color"][data-lang="' + window.selected_language + '"]').val();
var chroma_tolerance = $('.input_lang[data-target-id="chroma_tolerance"][data-lang="' + window.selected_language + '"]').val();
} else {
var color = $('#chroma_color').val();
var chroma_tolerance = $('#chroma_tolerance').val();
}
var chroma_color = color.toString().replace("rgb(", "").replace(")", "");
params = chroma_color + ',' + chroma_tolerance;
} else {
if(params==null) {
if(poi_index_edit==null) return;
params=window.pois[poi_index_edit].params;
}
}
} else {
if(params==null) {
if(poi_index_edit==null) return;
params=window.pois[poi_index_edit].params;
}
}
ctx_chroma_tmp.drawImage(video_chroma, 0, 0, width , height );
let frame = ctx_chroma_tmp.getImageData(0, 0, width , height );
var params_array = params.split(",");
var bg_r = parseInt(params_array[0]);
var bg_g = parseInt(params_array[1]);
var bg_b = parseInt(params_array[2]);
var t = parseInt(params_array[3]);
for (let i = 0; i < frame.data.length /4; i++) {
let r = frame.data[i * 4 + 0];
let g = frame.data[i * 4 + 1];
let b = frame.data[i * 4 + 2];
if (r > (bg_r-t) && r < (bg_r+t) && g > (bg_g-t) && g < (bg_g+t) && b > (bg_b-t) && b < (bg_b+t)) {
frame.data[i * 4 + 3] = 0;
}
}
ctx_chroma.putImageData(frame, 0, 0);
if(!force) setTimeout(function () {
remove_background_video_chroma(video_chroma,ctx_chroma_tmp,ctx_chroma,width,height,params,false);
}, 0);
}
function hotspot_embed_m(hotSpotDiv, args) {
var id = args.id;
var type = args.embed_type;
var size = args.embed_size.split(",");
var width = size[0];
var height = size[1];
hotSpotDiv.setAttribute('draggable',false);
hotSpotDiv.classList.add('noselect');
hotSpotDiv.classList.add('marker_embed');
hotSpotDiv.classList.add('marker_embed_'+id);
hotSpotDiv.classList.add('hotspot_'+id);
hotSpotDiv.style.zIndex = args.zIndex;
hotSpotDiv.setAttribute('data-id',id);
hotSpotDiv.setAttribute('data-type',type);
hotSpotDiv.setAttribute('data-transform3d',args.transform3d);
hotSpotDiv.setAttribute('data-initialized',0);
hotSpotDiv.setAttribute('visible_multiview_ids',args.visible_multiview_ids);
if(args.embed_content!='') {
switch(type) {
case 'selection':
var div = document.createElement('div');
div.setAttribute('draggable', false);
div.classList.add('marker_embed_selection');
hotSpotDiv.classList.add('no_outline');
var bg_color = args.background;
var color = args.color;
if(args.embed_params!='') {
div.style = "width:"+width+";height:"+height+";margin: 0 auto;vertical-align:middle;opacity:0;background-color:transparent;border-color:rgba(255,255,255,0.4);";
} else {
div.style = "width:"+width+";height:"+height+";margin: 0 auto;vertical-align:middle;opacity:0;background-color:"+bg_color+";border-color:"+color+";"+args.embed_content;
}
var canvas = document.createElement('canvas');
canvas.id = 'canvas_selection_'+args.id;
canvas.width = width.replace('px','');
canvas.height = height.replace('px','');
div.appendChild(canvas);
hotSpotDiv.appendChild(div);
if(args.embed_params!='') {
var canvas = document.getElementById('canvas_selection_'+id);
var border = args.embed_content.replace('border-width:','').replace('px;','');
var points = JSON.parse(args.embed_params);
draw_polygon(canvas.getContext("2d"),points,border,bg_color,color);
}
hotSpotDiv.appendChild(div);
break;
}
} else {
var div = document.createElement('div');
div.setAttribute('draggable',false);
div.classList.add('empty_embed');
div.style = "width:"+width+"px;height:"+height+"px;margin: 0 auto;vertical-align:middle;background-color:rgba(255,255,255,0.6);;opacity:0;";
hotSpotDiv.appendChild(div);
}
}
function supportsHEVCAlpha() {
const navigator = window.navigator;
const ua = navigator.userAgent.toLowerCase();
const hasMediaCapabilities = !!(navigator.mediaCapabilities && navigator.mediaCapabilities.decodingInfo);
const isSafari = ((ua.indexOf('safari') != -1) && (!(ua.indexOf('chrome')!= -1) && (ua.indexOf('version/')!= -1)));
return isSafari && hasMediaCapabilities;
}
function hotspot_embed_helper_m(hotSpotDiv, args) {
hotSpotDiv.setAttribute('draggable',false);
hotSpotDiv.classList.add('noselect');
hotSpotDiv.classList.add('marker_embded_helper');
hotSpotDiv.setAttribute('id','marker_embded_helper_'+args[0]+'_'+args[1]);
var icon = document.createElement('i');
icon.classList.add('fas');
icon.classList.add('fa-circle');
icon.style = 'font-size:16px;cursor:pointer;color:red;opacity:0.6;';
hotSpotDiv.append(icon);
}
window.hotspot_embed_helper = function(hotSpotDiv, args) {
hotSpotDiv.setAttribute('draggable',false);
hotSpotDiv.classList.add('noselect');
hotSpotDiv.classList.add('poi_embded_helper');
hotSpotDiv.setAttribute('id','poi_embded_helper_'+args[0]+'_'+args[1]);
var icon = document.createElement('i');
icon.classList.add('fas');
icon.classList.add('fa-circle');
icon.style = 'font-size:16px;cursor:pointer;color:red;opacity:0.6;';
hotSpotDiv.append(icon);
}
function hotspot_embed_move(hotSpotDiv, args) {
hotSpotDiv.setAttribute('draggable',false);
hotSpotDiv.classList.add('noselect');
hotSpotDiv.classList.add('poi_embded_move');
hotSpotDiv.setAttribute('id','poi_embded_move_'+args);
var icon = document.createElement('i');
icon.classList.add('fas');
icon.classList.add('fa-arrows-alt');
icon.style = 'font-size:16px;cursor:pointer;color:red;background-color:white;border-radius:50%;padding:5px;opacity:0.6;';
hotSpotDiv.append(icon);
}
function hotspot_embed_move_m(hotSpotDiv, args) {
hotSpotDiv.setAttribute('draggable',false);
hotSpotDiv.classList.add('noselect');
hotSpotDiv.classList.add('marker_embded_move');
hotSpotDiv.setAttribute('id','marker_embded_move_'+args);
var icon = document.createElement('i');
icon.classList.add('fas');
icon.classList.add('fa-arrows-alt');
icon.style = 'font-size:16px;cursor:pointer;color:red;background-color:white;border-radius:50%;padding:5px;opacity:0.6;';
hotSpotDiv.append(icon);
}
function drag_marker_move(event, args) {
var index = args;
var coords = window.viewer.mouseEventToCoords(event);
var yaw = parseFloat(coords[1]);
var pitch = parseFloat(coords[0]);
window.markers[index].yaw = yaw;
window.markers[index].pitch = pitch;
switch(event.type) {
case 'mousedown':
case 'touchstart':
case 'pointerdown':
$('#confirm_move').css({'height':'34px','overflow':'hidden'});
break;
case 'mouseup':
case 'touchend':
case 'pointerup':
$('#confirm_move').css({'height':'auto','overflow':'unset'});
break;
}
pauseEvent(event);
}
function drag_measure_move(event, args) {
var index = args.index;
var dir = args.dir;
var coords = window.viewer.mouseEventToCoords(event);
var yaw = parseFloat(coords[1]);
var pitch = parseFloat(coords[0]);
switch(dir) {
case 'start':
window.measures[index].yaw_start = yaw;
window.measures[index].pitch_start = pitch;
break;
case 'end':
window.measures[index].yaw_end = yaw;
window.measures[index].pitch_end = pitch;
break;
}
adjust_measurements(false);
pauseEvent(event);
}
function drag_poi_move(event, args) {
var index = args;
var coords = window.viewer.mouseEventToCoords(event);
var yaw = parseFloat(coords[1]);
var pitch = parseFloat(coords[0]);
window.pois[index].yaw = yaw;
window.pois[index].pitch = pitch;
switch(event.type) {
case 'mousedown':
case 'touchstart':
case 'pointerdown':
$('#confirm_move').css({'height':'34px','overflow':'hidden'});
break;
case 'mouseup':
case 'touchend':
case 'pointerup':
$('#confirm_move').css({'height':'auto','overflow':'unset'});
break;
}
pauseEvent(event);
}
function pauseEvent(e){
if(e.stopPropagation) e.stopPropagation();
if(e.preventDefault) e.preventDefault();
e.cancelBubble=true;
e.returnValue=false;
return false;
}
var interval_drag_helper;
function drag_embed_helper(event, args) {
var poi = args[0];
var id = poi.id;
var index = args[1];
switch(event.type) {
case 'mousedown':
case 'touchstart':
case 'pointerdown':
$('#confirm_move').css({'height':'34px','overflow':'hidden'});
$('.poi_embed_'+id).css({'outline':'1px dashed red','opacity':0.6});
window.viewer.setUpdate(true);
interval_drag_helper = setInterval(function () {
adjust_poi_embed_helpers_all();
},10);
break;
case 'mouseup':
case 'touchend':
case 'pointerup':
$('#confirm_move').css({'height':'auto','overflow':'unset'});
$('.poi_embed_'+id).css({'outline':'none','opacity':1.0});
window.viewer.setUpdate(false);
clearInterval(interval_drag_helper);
var coords = window.viewer.mouseEventToCoords(event);
var yaw = parseFloat(coords[1]);
var pitch = parseFloat(coords[0]);
var poi_embed_helpers = poi.embed_coords.split("|");
poi_embed_helpers[0] = poi_embed_helpers[0].split(",");
poi_embed_helpers[1] = poi_embed_helpers[1].split(",");
poi_embed_helpers[2] = poi_embed_helpers[2].split(",");
poi_embed_helpers[3] = poi_embed_helpers[3].split(",");
poi_embed_helpers[index][0] = pitch;
poi_embed_helpers[index][1] = yaw;
var embed_coords = poi_embed_helpers[0][0]+","+poi_embed_helpers[0][1]+"|"+poi_embed_helpers[1][0]+","+poi_embed_helpers[1][1]+"|"+poi_embed_helpers[2][0]+","+poi_embed_helpers[2][1]+"|"+poi_embed_helpers[3][0]+","+poi_embed_helpers[3][1];
poi.embed_coords = embed_coords;
var pos_1 = ($('#poi_embded_helper_'+id+'_1').offset());
var pos_2 = ($('#poi_embded_helper_'+id+'_2').offset());
var pos_3 = ($('#poi_embded_helper_'+id+'_3').offset());
var pos_4 = ($('#poi_embded_helper_'+id+'_4').offset());
var center_left = ((parseFloat(pos_1.left) + parseFloat(pos_2.left) + parseFloat(pos_3.left) + parseFloat(pos_4.left)) / 4) + 8;
var center_top = ((parseFloat(pos_1.top) + parseFloat(pos_2.top) + parseFloat(pos_3.top) + parseFloat(pos_4.top)) / 4) + 8;
var event_center = [];
event_center.clientX = center_left;
event_center.clientY = center_top;
var coords_center = window.viewer.mouseEventToCoords(event_center);
poi.yaw = parseFloat(coords_center[1]);
poi.pitch = parseFloat(coords_center[0]);
var w = Math.getDistance(pos_1.left,pos_1.top,pos_3.left,pos_3.top);
var h = Math.getDistance(pos_1.left,pos_1.top,pos_2.left,pos_2.top);
poi.embed_size = w+","+h;
jQuery.each(window.pois, function(index, poi_a) {
if(id==poi_a.id) {
window.pois[index].yaw = poi.yaw;
window.pois[index].pitch = poi.pitch;
window.pois[index].embed_coords = poi.embed_coords;
window.pois[index].embed_size = poi.embed_size;
switch(window.pois[index].embed_type) {
case 'gallery':
try {
poi_embed_galleries[id].destroy();
} catch (e) {}
render_poi(id,index);
$('#poi_embded_move_'+id).css({'opacity':1,'pointer-events':'initial'});
$('#poi_embded_helper_'+id+'_1').css({'opacity':1,'pointer-events':'initial'});
$('#poi_embded_helper_'+id+'_2').css({'opacity':1,'pointer-events':'initial'});
$('#poi_embded_helper_'+id+'_3').css({'opacity':1,'pointer-events':'initial'});
$('#poi_embded_helper_'+id+'_4').css({'opacity':1,'pointer-events':'initial'});
break;
case 'link':
case 'text':
case 'selection':
case 'object3d':
render_poi(id,index);
$('#poi_embded_move_'+id).css({'opacity':1,'pointer-events':'initial'});
$('#poi_embded_helper_'+id+'_1').css({'opacity':1,'pointer-events':'initial'});
$('#poi_embded_helper_'+id+'_2').css({'opacity':1,'pointer-events':'initial'});
$('#poi_embded_helper_'+id+'_3').css({'opacity':1,'pointer-events':'initial'});
$('#poi_embded_helper_'+id+'_4').css({'opacity':1,'pointer-events':'initial'});
break;
default:
window.viewer.removeHotSpot("p"+id.toString()+"_move");
window.viewer.addHotSpot({
"id": "p"+window.pois[index].id+"_move",
"type": 'pointer',
"object": "poi_embed_helper",
"transform3d": false,
"pitch": parseFloat(window.pois[index].pitch),
"yaw": parseFloat(window.pois[index].yaw),
"size_scale": 1,
"rotateX": 0,
"rotateZ": 0,
"draggable": true,
"cssClass": "hotspot-helper",
"createTooltipFunc": hotspot_embed_move,
"createTooltipArgs": window.pois[index].id,
"dragHandlerFunc": drag_embed_move,
"dragHandlerArgs": [window.pois[index].id,index]
});
$('#poi_embded_move_'+id).css({'opacity':1,'pointer-events':'initial'});
break;
}
}
});
break;
}
}
var interval_drag_helper_m;
function drag_embed_helper_m(event, args) {
var marker = args[0];
var id = marker.id;
var index = args[1];
switch(event.type) {
case 'mousedown':
case 'touchstart':
case 'pointerdown':
$('#confirm_move').css({'height':'34px','overflow':'hidden'});
$('.marker_embed_'+id).css({'outline':'1px dashed red','opacity':0.6});
window.viewer.setUpdate(true);
interval_drag_helper_m = setInterval(function () {
adjust_marker_embed_helpers_all();
},10);
break;
case 'mouseup':
case 'touchend':
case 'pointerup':
$('#confirm_move').css({'height':'auto','overflow':'unset'});
$('.marker_embed_'+id).css({'outline':'none','opacity':1.0});
window.viewer.setUpdate(false);
clearInterval(interval_drag_helper_m);
var coords = window.viewer.mouseEventToCoords(event);
var yaw = parseFloat(coords[1]);
var pitch = parseFloat(coords[0]);
var marker_embed_helpers = marker.embed_coords.split("|");
marker_embed_helpers[0] = marker_embed_helpers[0].split(",");
marker_embed_helpers[1] = marker_embed_helpers[1].split(",");
marker_embed_helpers[2] = marker_embed_helpers[2].split(",");
marker_embed_helpers[3] = marker_embed_helpers[3].split(",");
marker_embed_helpers[index][0] = pitch;
marker_embed_helpers[index][1] = yaw;
var embed_coords = marker_embed_helpers[0][0]+","+marker_embed_helpers[0][1]+"|"+marker_embed_helpers[1][0]+","+marker_embed_helpers[1][1]+"|"+marker_embed_helpers[2][0]+","+marker_embed_helpers[2][1]+"|"+marker_embed_helpers[3][0]+","+marker_embed_helpers[3][1];
marker.embed_coords = embed_coords;
var pos_1 = ($('#marker_embded_helper_'+id+'_1').offset());
var pos_2 = ($('#marker_embded_helper_'+id+'_2').offset());
var pos_3 = ($('#marker_embded_helper_'+id+'_3').offset());
var pos_4 = ($('#marker_embded_helper_'+id+'_4').offset());
var center_left = ((parseFloat(pos_1.left) + parseFloat(pos_2.left) + parseFloat(pos_3.left) + parseFloat(pos_4.left)) / 4) + 8;
var center_top = ((parseFloat(pos_1.top) + parseFloat(pos_2.top) + parseFloat(pos_3.top) + parseFloat(pos_4.top)) / 4) + 8;
var event_center = [];
event_center.clientX = center_left;
event_center.clientY = center_top;
var coords_center = window.viewer.mouseEventToCoords(event_center);
marker.yaw = parseFloat(coords_center[1]);
marker.pitch = parseFloat(coords_center[0]);
var w = Math.getDistance(pos_1.left,pos_1.top,pos_3.left,pos_3.top);
var h = Math.getDistance(pos_1.left,pos_1.top,pos_2.left,pos_2.top);
marker.embed_size = w+","+h;
jQuery.each(window.markers, function(index, marker_a) {
if(id==marker_a.id) {
window.markers[index].yaw = marker.yaw;
window.markers[index].pitch = marker.pitch;
window.markers[index].embed_coords = marker.embed_coords;
window.markers[index].embed_size = marker.embed_size;
switch(window.markers[index].embed_type) {
case 'selection':
render_marker(id,index);
$('#marker_embded_move_'+id).css({'opacity':1,'pointer-events':'initial'});
$('#marker_embded_helper_'+id+'_1').css({'opacity':1,'pointer-events':'initial'});
$('#marker_embded_helper_'+id+'_2').css({'opacity':1,'pointer-events':'initial'});
$('#marker_embded_helper_'+id+'_3').css({'opacity':1,'pointer-events':'initial'});
$('#marker_embded_helper_'+id+'_4').css({'opacity':1,'pointer-events':'initial'});
break;
default:
window.viewer.removeHotSpot("m"+id.toString()+"_move");
window.viewer.addHotSpot({
"id": "m"+window.markers[index].id+"_move",
"type": 'pointer',
"object": "marker_embed_helper",
"transform3d": false,
"pitch": parseFloat(window.markers[index].pitch),
"yaw": parseFloat(window.markers[index].yaw),
"size_scale": 1,
"rotateX": 0,
"rotateZ": 0,
"draggable": true,
"cssClass": "hotspot-helper",
"createTooltipFunc": hotspot_embed_move_m,
"createTooltipArgs": window.markers[index].id,
"dragHandlerFunc": drag_embed_move_m,
"dragHandlerArgs": [window.markers[index].id,index]
});
$('#marker_embded_move_'+id).css({'opacity':1,'pointer-events':'initial'});
break;
}
}
});
break;
}
}
var yaw_i,pitch_i;
function drag_embed_move(event, args) {
var id = args[0];
var index = args[1];
switch(event.type) {
case 'mousedown':
case 'touchstart':
case 'pointerdown':
$('#confirm_move').css({'height':'34px','overflow':'hidden'});
$('.poi_embed_'+id).css('outline','1px dashed red');
var coords = window.viewer.mouseEventToCoords(event);
yaw_i = parseFloat(coords[1]);
pitch_i = parseFloat(coords[0]);
break;
case 'mouseup':
case 'touchend':
case 'pointerup':
$('#confirm_move').css({'height':'auto','overflow':'unset'});
$('.poi_embed_'+id).css('outline','none');
var coords = window.viewer.mouseEventToCoords(event);
var yaw_c = parseFloat(coords[1]);
var pitch_c = parseFloat(coords[0]);
window.pois[index].yaw = yaw_c;
window.pois[index].pitch = pitch_c;
var yaw_diff = yaw_c-yaw_i;
var pitch_diff = pitch_c-pitch_i;
var poi_embed_helpers = window.pois[index].embed_coords.split("|");
poi_embed_helpers[0] = poi_embed_helpers[0].split(",");
poi_embed_helpers[1] = poi_embed_helpers[1].split(",");
poi_embed_helpers[2] = poi_embed_helpers[2].split(",");
poi_embed_helpers[3] = poi_embed_helpers[3].split(",");
poi_embed_helpers[0][0] = parseFloat(poi_embed_helpers[0][0]) + pitch_diff;
poi_embed_helpers[0][1] = parseFloat(poi_embed_helpers[0][1]) + yaw_diff;
poi_embed_helpers[1][0] = parseFloat(poi_embed_helpers[1][0]) + pitch_diff;
poi_embed_helpers[1][1] = parseFloat(poi_embed_helpers[1][1]) + yaw_diff;
poi_embed_helpers[2][0] = parseFloat(poi_embed_helpers[2][0]) + pitch_diff;
poi_embed_helpers[2][1] = parseFloat(poi_embed_helpers[2][1]) + yaw_diff;
poi_embed_helpers[3][0] = parseFloat(poi_embed_helpers[3][0]) + pitch_diff;
poi_embed_helpers[3][1] = parseFloat(poi_embed_helpers[3][1]) + yaw_diff;
var embed_coords = poi_embed_helpers[0][0]+","+poi_embed_helpers[0][1]+"|"+poi_embed_helpers[1][0]+","+poi_embed_helpers[1][1]+"|"+poi_embed_helpers[2][0]+","+poi_embed_helpers[2][1]+"|"+poi_embed_helpers[3][0]+","+poi_embed_helpers[3][1];
window.pois[index].embed_coords = embed_coords;
render_poi(id,index);
$('#poi_embded_move_'+id).css({'opacity':1,'pointer-events':'initial'});
$('#poi_embded_helper_'+id+'_1').css({'opacity':1,'pointer-events':'initial'});
$('#poi_embded_helper_'+id+'_2').css({'opacity':1,'pointer-events':'initial'});
$('#poi_embded_helper_'+id+'_3').css({'opacity':1,'pointer-events':'initial'});
$('#poi_embded_helper_'+id+'_4').css({'opacity':1,'pointer-events':'initial'});
break;
}
}
var yaw_i_m,pitch_i_m;
function drag_embed_move_m(event, args) {
var id = args[0];
var index = args[1];
switch(event.type) {
case 'mousedown':
case 'touchstart':
case 'pointerdown':
$('#confirm_move').css({'height':'34px','overflow':'hidden'});
$('.marker_embed_'+id).css('outline','1px dashed red');
var coords = window.viewer.mouseEventToCoords(event);
yaw_i_m = parseFloat(coords[1]);
pitch_i_m = parseFloat(coords[0]);
break;
case 'mouseup':
case 'touchend':
case 'pointerup':
$('#confirm_move').css({'height':'auto','overflow':'unset'});
$('.marker_embed_'+id).css('outline','none');
var coords = window.viewer.mouseEventToCoords(event);
var yaw_c = parseFloat(coords[1]);
var pitch_c = parseFloat(coords[0]);
window.markers[index].yaw = yaw_c;
window.markers[index].pitch = pitch_c;
var yaw_diff = yaw_c-yaw_i_m;
var pitch_diff = pitch_c-pitch_i_m;
var marker_embed_helpers = window.markers[index].embed_coords.split("|");
marker_embed_helpers[0] = marker_embed_helpers[0].split(",");
marker_embed_helpers[1] = marker_embed_helpers[1].split(",");
marker_embed_helpers[2] = marker_embed_helpers[2].split(",");
marker_embed_helpers[3] = marker_embed_helpers[3].split(",");
marker_embed_helpers[0][0] = parseFloat(marker_embed_helpers[0][0]) + pitch_diff;
marker_embed_helpers[0][1] = parseFloat(marker_embed_helpers[0][1]) + yaw_diff;
marker_embed_helpers[1][0] = parseFloat(marker_embed_helpers[1][0]) + pitch_diff;
marker_embed_helpers[1][1] = parseFloat(marker_embed_helpers[1][1]) + yaw_diff;
marker_embed_helpers[2][0] = parseFloat(marker_embed_helpers[2][0]) + pitch_diff;
marker_embed_helpers[2][1] = parseFloat(marker_embed_helpers[2][1]) + yaw_diff;
marker_embed_helpers[3][0] = parseFloat(marker_embed_helpers[3][0]) + pitch_diff;
marker_embed_helpers[3][1] = parseFloat(marker_embed_helpers[3][1]) + yaw_diff;
var embed_coords = marker_embed_helpers[0][0]+","+marker_embed_helpers[0][1]+"|"+marker_embed_helpers[1][0]+","+marker_embed_helpers[1][1]+"|"+marker_embed_helpers[2][0]+","+marker_embed_helpers[2][1]+"|"+marker_embed_helpers[3][0]+","+marker_embed_helpers[3][1];
window.markers[index].embed_coords = embed_coords;
render_marker(id,index);
$('#marker_embded_move_'+id).css({'opacity':1,'pointer-events':'initial'});
$('#marker_embded_helper_'+id+'_1').css({'opacity':1,'pointer-events':'initial'});
$('#marker_embded_helper_'+id+'_2').css({'opacity':1,'pointer-events':'initial'});
$('#marker_embded_helper_'+id+'_3').css({'opacity':1,'pointer-events':'initial'});
$('#marker_embded_helper_'+id+'_4').css({'opacity':1,'pointer-events':'initial'});
break;
}
}
window.poi_embed_get_transform = function(from, to) {
var A, H, b, h, i, k, k_i, l, lhs, m, ref, rhs;
A = [];
for (i = k = 0; k < 4; i = ++k) {
A.push([from[i].x, from[i].y, 1, 0, 0, 0, -from[i].x * to[i].x, -from[i].y * to[i].x]);
A.push([0, 0, 0, from[i].x, from[i].y, 1, -from[i].x * to[i].y, -from[i].y * to[i].y]);
}
b = [];
for (i = l = 0; l < 4; i = ++l) {
b.push(to[i].x);
b.push(to[i].y);
}
h = numeric.solve(A, b);
H = [[h[0], h[1], 0, h[2]], [h[3], h[4], 0, h[5]], [0, 0, 1, 0], [h[6], h[7], 0, 1]];
for (i = m = 0; m < 4; i = ++m) {
lhs = numeric.dot(H, [from[i].x, from[i].y, 0, 1]);
k_i = lhs[3];
rhs = numeric.dot(k_i, [to[i].x, to[i].y, 0, 1]);
}
return H;
};
window.poi_embed_apply_transform = function(element, originalPos, targetPos, callback) {
var H, from, i, j, p, to;
from = (function() {
var k, len, results;
results = [];
for (k = 0, len = originalPos.length; k < len; k++) {
p = originalPos[k];
results.push({
x: p[0] - originalPos[0][0],
y: p[1] - originalPos[0][1]
});
}
return results;
})();
to = (function() {
var k, len, results;
results = [];
for (k = 0, len = targetPos.length; k < len; k++) {
p = targetPos[k];
results.push({
x: p[0] - originalPos[0][0],
y: p[1] - originalPos[0][1]
});
}
return results;
})();
H = poi_embed_get_transform(from, to);
$(element).css({
'transform': `matrix3d(${((function() {
var k, results;
results = [];
for (i = k = 0; k < 4; i = ++k) {
results.push((function() {
var l, results1;
results1 = [];
for (j = l = 0; l < 4; j = ++l) {
results1.push(H[j][i].toFixed(20));
}
return results1;
})());
}
return results;
})()).join(',')})`,
'transform-origin': '0 0'
});
return typeof callback === "function" ? callback(element, H) : void 0;
};
window.poi_embed_make_transformable = function(selector, id, callback) {
var pano_container = '';
var edit_room = 0;
if($('.div_panorama_container').length) {
pano_container = '.div_panorama_container';
} else {
if($('#panorama').length) {
pano_container = '#panorama';
edit_room = 1;
} else {
if($('#panorama_video').length) {
pano_container = '#panorama_video';
edit_room = 1;
} else {
return;
}
}
}
return $(selector).each(function(i, element) {
var controlPoints, originalPos, p, position;
$(element).css('transform', '');
controlPoints = (function() {
var k, len, ref, results;
ref = ['left top', 'left bottom', 'right top', 'right bottom'];
results = [];
for (k = 0, len = ref.length; k < len; k++) {
position = ref[k];
results.push($('<div class="draggable_poi_embed" id="draggable_'+id+'_'+(k+1)+'">').css({
position: 'absolute',
zIndex: 100000
}).appendTo(pano_container).position({
at: position,
of: element,
collision: 'none'
}));
}
return results;
})();
originalPos = (function() {
var k, len, results;
results = [];
for (k = 0, len = controlPoints.length; k < len; k++) {
p = controlPoints[k];
if(window.is_fullscreen) {
results.push([p.position().left, p.position().top]);
} else {
results.push([p.offset().left, p.offset().top]);
}
}
return results;
})();
poi_embed_originals_pos[id] = originalPos;
return element;
});
};
window.marker_embed_make_transformable = function(selector, id, callback) {
return $(selector).each(function(i, element) {
var controlPoints, originalPos, p, position;
$(element).css('transform', '');
controlPoints = (function() {
var k, len, ref, results;
ref = ['left top', 'left bottom', 'right top', 'right bottom'];
results = [];
for (k = 0, len = ref.length; k < len; k++) {
position = ref[k];
results.push($('<div class="draggable_marker_embed" id="draggable_'+id+'_'+(k+1)+'">').css({
position: 'absolute',
zIndex: 100000
}).appendTo('.div_panorama_container').position({
at: position,
of: element,
collision: 'none'
}));
}
return results;
})();
originalPos = (function() {
var k, len, results;
results = [];
for (k = 0, len = controlPoints.length; k < len; k++) {
p = controlPoints[k];
if(window.is_fullscreen) {
results.push([p.position().left, p.position().top]);
} else {
results.push([p.offset().left, p.offset().top]);
}
}
return results;
})();
marker_embed_originals_pos[id] = originalPos;
return element;
});
};
var video_p = null, app_p = null, loader_p = null;
function initialize_pano_pois(id_room,image,id_poi_add,array_room) {
if(window.currentYaw==0) {
window.currentYaw = parseInt(array_room.yaw);
}
if(window.currentPitch==0) {
window.currentPitch = parseInt(array_room.pitch);
}
if(window.wizard_step!=-1) {
window.currentYaw = window.currentYaw + 20;
}
window.panorama_image = image;
$('#panorama_pois').show();
var hotSpots = [];
var index_poi_add = null;
jQuery.each(window.pois, function(index, poi) {
if(id_poi_add!=null) {
if(id_poi_add==poi.id && poi.what=='poi') {
index_poi_add = index;
}
}
if(poi.what=='poi') {
if(poi.embed_type!='' && poi.transform3d==1) {
hotSpots.push({
"id": "p"+poi.id,
"type": poi.embed_type,
"object": "poi_embed",
"scale": false,
"transform3d": parseInt(poi.transform3d),
"tooltip_type": "",
"pitch": parseFloat(poi.pitch),
"yaw": parseFloat(poi.yaw),
"rotateX": 0,
"rotateZ": 0,
"size_scale": 1,
"cssClass": "hotspot-embed hotspot",
"createTooltipFunc": hotspot_embed,
"createTooltipArgs": poi,
"clickHandlerFunc": click_edit_poi,
"clickHandlerArgs": poi.id
});
if(poi.transform3d==1) {
var poi_embed_helpers = poi.embed_coords.split("|");
poi_embed_helpers[0] = poi_embed_helpers[0].split(",");
poi_embed_helpers[1] = poi_embed_helpers[1].split(",");
poi_embed_helpers[2] = poi_embed_helpers[2].split(",");
poi_embed_helpers[3] = poi_embed_helpers[3].split(",");
jQuery.each(poi_embed_helpers, function(index_h, poi_embed_helper) {
hotSpots.push({
"id": "p"+poi.id+"_"+(index_h+1),
"type": 'pointer',
"object": "poi_embed_helper",
"transform3d": false,
"pitch": parseFloat(poi_embed_helper[0]),
"yaw": parseFloat(poi_embed_helper[1]),
"size_scale": 1,
"rotateX": 0,
"rotateZ": 0,
"draggable": true,
"cssClass": "hotspot-helper",
"createTooltipFunc": hotspot_embed_helper,
"createTooltipArgs": [poi.id,(index_h+1)],
"dragHandlerFunc": drag_embed_helper,
"dragHandlerArgs": [poi,index_h]
});
});
hotSpots.push({
"id": "p"+poi.id+"_move",
"type": 'pointer',
"object": "poi_embed_helper",
"transform3d": false,
"pitch": parseFloat(poi.pitch),
"yaw": parseFloat(poi.yaw),
"size_scale": 1,
"rotateX": 0,
"rotateZ": 0,
"draggable": true,
"cssClass": "hotspot-helper",
"createTooltipFunc": hotspot_embed_move,
"createTooltipArgs": poi.id,
"dragHandlerFunc": drag_embed_move,
"dragHandlerArgs": [poi.id,index]
});
}
} else if(poi.embed_type!='' && poi.transform3d==0) {
hotSpots.push({
"id": "p"+poi.id,
"type": poi.embed_type,
"object": "poi_embed",
"scale": false,
"transform3d": parseInt(poi.transform3d),
"tooltip_type": "",
"pitch": parseFloat(poi.pitch),
"yaw": parseFloat(poi.yaw),
"rotateX": parseInt(poi.rotateX),
"rotateZ": parseInt(poi.rotateZ),
"size_scale": parseFloat(poi.size_scale),
"cssClass": "hotspot-embed hotspot",
"createTooltipFunc": hotspot_embed,
"createTooltipArgs": poi,
"clickHandlerFunc": click_edit_poi,
"clickHandlerArgs": poi.id
});
} else {
switch(poi.type) {
case 'callout':
hotSpots.push({
"id": poi.id,
"type": 'poi',
"transform3d": false,
"scale": false,
"pitch": parseFloat(poi.pitch),
"yaw": parseFloat(poi.yaw),
"rotateX": 0,
"rotateZ": 0,
"size_scale": 1,
"cssClass": "custom-hotspot-content hotspot",
"createTooltipFunc": hotspot_p_callout,
"createTooltipArgs": poi,
"clickHandlerFunc": click_edit_poi,
"clickHandlerArgs": poi.id
});
break;
default:
hotSpots.push({
"id": poi.id,
"type": 'poi',
"transform3d": false,
"scale": (parseInt(poi.scale)==1) ? true : false,
"pitch": parseFloat(poi.pitch),
"yaw": parseFloat(poi.yaw),
"rotateX": parseInt(poi.rotateX),
"rotateZ": parseInt(poi.rotateZ),
"size_scale": parseFloat(poi.size_scale),
"cssClass": "custom-hotspot-content hotspot",
"createTooltipFunc": hotspot_p,
"createTooltipArgs": poi,
"clickHandlerFunc": click_edit_poi,
"clickHandlerArgs": poi.id
});
break;
}
}
} else {
if(poi.embed_type!='') {
hotSpots.push({
"id": "m"+poi.id,
"type": poi.embed_type,
"object": "marker_embed",
"transform3d": parseInt(poi.transform3d),
"scale": false,
"tooltip_type": "",
"pitch": parseFloat(poi.pitch),
"yaw": parseFloat(poi.yaw),
"rotateX": 0,
"rotateZ": 0,
"size_scale": 1,
"cssClass": "hotspot-embed hotspot",
"createTooltipFunc": hotspot_embed_m,
"createTooltipArgs": poi
});
var marker_embed_helpers = poi.embed_coords.split("|");
marker_embed_helpers[0] = marker_embed_helpers[0].split(",");
marker_embed_helpers[1] = marker_embed_helpers[1].split(",");
marker_embed_helpers[2] = marker_embed_helpers[2].split(",");
marker_embed_helpers[3] = marker_embed_helpers[3].split(",");
jQuery.each(marker_embed_helpers, function (index_h, marker_embed_helper) {
hotSpots.push({
"id": "m"+poi.id + "_" + (index_h + 1),
"type": 'pointer',
"object": "marker_embed_helper",
"transform3d": false,
"pitch": parseFloat(marker_embed_helper[0]),
"yaw": parseFloat(marker_embed_helper[1]),
"size_scale": 1,
"rotateX": 0,
"rotateZ": 0,
"draggable": true,
"cssClass": "hotspot-helper",
"createTooltipFunc": hotspot_embed_helper_m,
"createTooltipArgs": [poi.id, (index_h + 1)]
});
});
hotSpots.push({
"id": "m"+poi.id + "_move",
"type": 'pointer',
"object": "marker_embed_helper",
"transform3d": false,
"pitch": parseFloat(poi.pitch),
"yaw": parseFloat(poi.yaw),
"size_scale": 1,
"rotateX": 0,
"rotateZ": 0,
"draggable": true,
"cssClass": "hotspot-helper",
"createTooltipFunc": hotspot_embed_move_m,
"createTooltipArgs": poi.id
});
} else {
hotSpots.push({
"type": 'marker',
"transform3d": false,
"scale": (parseInt(poi.scale)==1) ? true : false,
"pitch": parseFloat(poi.pitch),
"yaw": parseFloat(poi.yaw),
"rotateX": parseInt(poi.rotateX),
"rotateZ": parseInt(poi.rotateZ),
"size_scale": parseFloat(poi.size_scale),
"cssClass": "custom-hotspot hotspot",
"createTooltipFunc": hotspot_m,
"createTooltipArgs": poi
});
}
}
});
try {
window.video_viewer.dispose();
} catch (e) {}
try {
window.viewer.destroy();
} catch (e) {}
$('#panorama_pois').empty();
if(array_room.room_type == 'video') {
var fileExt = array_room.panorama_video.split('.').pop().toLowerCase();
switch(fileExt) {
case 'webm':
var type_video = 'video/webm';
break;
default:
var type_video = 'video/mp4';
break;
}
if(window.s3_enabled==1) {
var video_url = window.s3_url+'viewer/videos/'+array_room.panorama_video;
var image_url = window.s3_url+'viewer/panoramas/'+image+'?s3=1';
} else {
var video_url = '../viewer/videos/'+array_room.panorama_video;
var image_url = '../viewer/panoramas/'+image;
}
if(window.is_mobile) {
try {
loader_p.reset();
} catch (e) {}
try {
video_p.remove();
} catch (e) {}
$("#canvas_p").empty();
var setup_video_p = (loader, resources) => {
PIXI.utils.sayHello("WebGL");
var index_bg = Object.keys(resources)[0];
app_p = new PIXI.Application({
antialias: false,
transparent: false,
resolution: 1,
width: resources[index_bg].baseTexture.width,
height: resources[index_bg].baseTexture.height
});
$("#canvas_p").append(app_p.view);
let bg = PIXI.Sprite.from(resources[index_bg]);
/*bg.anchor.y = 1;
bg.scale.y = -1;*/
app_p.stage.addChild(bg);
video_p = document.createElement('video');
video_p.id = 'video_viewer';
video_p.crossOrigin = 'anonymous';
video_p.preload = 'auto';
video_p.autoplay = true;
video_p.muted = true;
video_p.loop = true;
video_p.oncanplay = function () {
video_p.play();
};
video_p.setAttribute('playsinline', '');
video_p.setAttribute('webkit-playsinline', '');
video_p.src = video_url;
const sprite = PIXI.Sprite.from(video_p);
/*sprite.anchor.y = 1;
sprite.scale.y = -1;*/
app_p.stage.addChild(sprite);
let canvas = $('#canvas_p canvas')[0];
window.viewer = pannellum.viewer('panorama_pois', {
"id_room": window.id_room,
"type": "equirectangular",
"panorama": canvas,
"autoLoad": true,
"dynamic": true,
"dynamicUpdate": true,
"showFullscreenCtrl": false,
"showControls": false,
"horizonPitch": parseInt(array_room.h_pitch),
"horizonRoll": parseInt(array_room.h_roll),
"hfov": 100,
"minHfov": 50,
"maxHfov": 120,
"yaw": parseFloat(window.currentYaw),
"pitch": parseFloat(window.currentPitch),
"haov": parseInt(array_room.haov),
"vaov": parseInt(array_room.vaov),
"hotSpots": hotSpots,
"friction": 1,
"strings": {
"loadingLabel": window.backend_labels.loading + "...",
},
});
setTimeout(function() {
if(window.is_fullscreen) {
if($('.rooms_slider').is(':visible')) {
var h_p = 75;
} else {
var h_p = 0;
}
try {
$('#video_viewer').css('height','100%');
} catch (e) {}
} else {
if($('.rooms_slider').is(':visible')) {
var h_p = 220;
} else {
var h_p = 220-75;
}
var container_h = $('#content-wrapper').height() - h_p;
try {
$('#video_viewer').css('height',container_h+'px');
} catch (e) {}
}
viewer_poi_initialized(id_poi_add,index_poi_add);
},200);
}
var list_assets = ["background"];
PIXI.Assets.add("background", image_url);
PIXI.Assets.load(list_assets).then((textures) => {
setup_video_p(null,textures);
});
} else {
$('#panorama_pois').append('<video controls playsinline webkit-playsinline id="video_viewer" class="video-js vjs-default-skin vjs-big-play-centered" style="width: 100%;height: 600px;margin: 0 auto;" muted preload="none" crossorigin="anonymous"><source src="'+video_url+'" type="'+type_video+'"/></video>');
if(window.is_fullscreen) {
if($('.rooms_slider').is(':visible')) {
var h_p = 75;
} else {
var h_p = 0;
}
try {
$('#video_viewer').css('height','100%');
} catch (e) {}
} else {
if($('.rooms_slider').is(':visible')) {
var h_p = 220;
} else {
var h_p = 220-75;
}
var container_h = $('#content-wrapper').height() - h_p;
try {
$('#video_viewer').css('height',container_h+'px');
} catch (e) {}
}
window.video_viewer = videojs('video_viewer', {
loop: true,
autoload: true,
muted: true,
controls: true,
plugins: {
pannellum: {
"autoLoad": true,
"showFullscreenCtrl": false,
"showControls": false,
"horizonPitch": parseInt(array_room.h_pitch),
"horizonRoll": parseInt(array_room.h_roll),
"hfov": 100,
"minHfov": 50,
"maxHfov": 120,
"yaw": parseFloat(window.currentYaw),
"pitch": parseFloat(window.currentPitch),
"haov": parseInt(array_room.haov),
"vaov": parseInt(array_room.vaov),
"hotSpots": hotSpots,
"friction": 1,
"strings": {
"loadingLabel": window.backend_labels.loading+"...",
},
}
}
});
window.video_viewer.load();
window.video_viewer.on('ready', function() {
window.video_viewer.play();
window.viewer = window.video_viewer.pnlmViewer;
window.viewer.on('load',function () {
viewer_poi_initialized(id_poi_add,index_poi_add);
});
});
}
} else {
if(window.id_room_alt_sel!=0) {
var multires = 0;
} else {
var multires = parseInt(array_room.multires);
}
if(multires) {
var multires_config = JSON.parse(array_room.multires_config);
window.viewer = pannellum.viewer('panorama_pois', {
"type": "multires",
"multiRes": multires_config,
"backgroundColor": [1,1,1],
"autoLoad": true,
"showFullscreenCtrl": false,
"showControls": false,
"multiResMinHfov": true,
"horizonPitch": parseInt(array_room.h_pitch),
"horizonRoll": parseInt(array_room.h_roll),
"hfov": 100,
"minHfov": 50,
"maxHfov": 120,
"yaw": parseFloat(window.currentYaw),
"pitch": parseFloat(window.currentPitch),
"haov": parseInt(array_room.haov),
"vaov": parseInt(array_room.vaov),
"friction": 1,
"hotSpots": hotSpots
});
setTimeout(function () {
viewer_poi_initialized(id_poi_add,index_poi_add);
},200);
} else {
if(window.s3_enabled==1) {
var image_url = window.s3_url+'viewer/panoramas/'+image+'?s3=1';
} else {
var image_url = '../viewer/panoramas/'+image;
}
window.viewer = pannellum.viewer('panorama_pois', {
"type": "equirectangular",
"panorama": image_url,
"autoLoad": true,
"showFullscreenCtrl": false,
"showControls": false,
"multiResMinHfov": true,
"horizonPitch": parseInt(array_room.h_pitch),
"horizonRoll": parseInt(array_room.h_roll),
"hfov": 100,
"minHfov": 50,
"maxHfov": 120,
"yaw": parseFloat(window.currentYaw),
"pitch": parseFloat(window.currentPitch),
"haov": parseInt(array_room.haov),
"vaov": parseInt(array_room.vaov),
"friction": 1,
"hotSpots": hotSpots,
"strings": {
"loadingLabel": window.backend_labels.loading+"...",
},
});
window.viewer.on("load",function () {
viewer_poi_initialized(id_poi_add,index_poi_add);
});
}
window.viewer.on('animatefinished',function () {
var yaw = parseFloat(viewer.getYaw());
var pitch = parseFloat(viewer.getPitch());
window.currentYaw = yaw;
window.currentPitch = pitch;
});
}
}
function initialize_pano_measures(id_room,image,array_room,id_measure_add) {
if(window.currentYaw==0) {
window.currentYaw = parseInt(array_room.yaw);
}
if(window.currentPitch==0) {
window.currentPitch = parseInt(array_room.pitch);
}
if(window.wizard_step!=-1) {
window.currentYaw = window.currentYaw + 20;
}
window.panorama_image = image;
$('#panorama_measures').show();
var hotSpots = [];
var index_measure_add = null;
jQuery.each(window.measures, function(index, measure) {
if(id_measure_add==measure.id) {
index_measure_add = index;
}
hotSpots.push({
"id": 'measure_'+measure.id+'_start',
"type": 'measure',
"view_type": 0,
"object": "measure",
"transform3d": false,
"scale": false,
"draggable": true,
"tooltip_type": '',
"pitch": parseFloat(measure.pitch_start),
"yaw": parseFloat(measure.yaw_start),
"rotateX": 0,
"rotateZ": 0,
"size_scale": 1,
"animation": '',
"cssClass": "custom-hotspot-measure",
"createTooltipFunc": hotspot_measure,
"createTooltipArgs": {id:measure.id,dir:'start',index:index,yaw:parseFloat(measure.yaw_start),pitch:parseFloat(measure.pitch_start)},
"dragHandlerFunc": drag_measure_move,
"dragHandlerArgs": {id:measure.id,dir:'start',index:index}
});
hotSpots.push({
"id": 'measure_'+measure.id+'_end',
"type": 'measure',
"view_type": 0,
"object": "measure",
"transform3d": false,
"scale": false,
"draggable": true,
"tooltip_type": '',
"pitch": parseFloat(measure.pitch_end),
"yaw": parseFloat(measure.yaw_end),
"rotateX": 0,
"rotateZ": 0,
"size_scale": 1,
"animation": '',
"cssClass": "custom-hotspot-measure",
"createTooltipFunc": hotspot_measure,
"createTooltipArgs": {id:measure.id,dir:'end',index:index,yaw:parseFloat(measure.yaw_start),pitch:parseFloat(measure.pitch_start)},
"dragHandlerFunc": drag_measure_move,
"dragHandlerArgs": {id:measure.id,dir:'end',index:index}
});
});
try {
window.video_viewer.dispose();
} catch (e) {}
try {
window.viewer.destroy();
} catch (e) {}
$('#panorama_measures').empty();
if(array_room.room_type == 'video') {
var fileExt = array_room.panorama_video.split('.').pop().toLowerCase();
switch(fileExt) {
case 'webm':
var type_video = 'video/webm';
break;
default:
var type_video = 'video/mp4';
break;
}
if(window.s3_enabled==1) {
var video_url = window.s3_url+'viewer/videos/'+array_room.panorama_video;
var image_url = window.s3_url+'viewer/panoramas/'+image+'?s3=1';
} else {
var video_url = '../viewer/videos/'+array_room.panorama_video;
var image_url = '../viewer/panoramas/'+image;
}
if(window.is_mobile) {
try {
loader_p.reset();
} catch (e) {}
try {
video_p.remove();
} catch (e) {}
$("#canvas_p").empty();
var setup_video_p = (loader, resources) => {
PIXI.utils.sayHello("WebGL");
var index_bg = Object.keys(resources)[0];
app_p = new PIXI.Application({
antialias: false,
transparent: false,
resolution: 1,
width: resources[index_bg].baseTexture.width,
height: resources[index_bg].baseTexture.height
});
$("#canvas_p").append(app_p.view);
let bg = PIXI.Sprite.from(resources[index_bg]);
/*bg.anchor.y = 1;
bg.scale.y = -1;*/
app_p.stage.addChild(bg);
video_p = document.createElement('video');
video_p.id = 'video_viewer';
video_p.crossOrigin = 'anonymous';
video_p.preload = 'auto';
video_p.autoplay = true;
video_p.muted = true;
video_p.loop = true;
video_p.oncanplay = function () {
video_p.play();
};
video_p.setAttribute('playsinline', '');
video_p.setAttribute('webkit-playsinline', '');
video_p.src = video_url;
const sprite = PIXI.Sprite.from(video_p);
/*sprite.anchor.y = 1;
sprite.scale.y = -1;*/
app_p.stage.addChild(sprite);
let canvas = $('#canvas_p canvas')[0];
window.viewer = pannellum.viewer('panorama_measures', {
"id_room": window.id_room,
"type": "equirectangular",
"panorama": canvas,
"autoLoad": true,
"dynamic": true,
"dynamicUpdate": true,
"showFullscreenCtrl": false,
"showControls": false,
"horizonPitch": parseInt(array_room.h_pitch),
"horizonRoll": parseInt(array_room.h_roll),
"hfov": 100,
"minHfov": 50,
"maxHfov": 120,
"yaw": parseFloat(window.currentYaw),
"pitch": parseFloat(window.currentPitch),
"haov": parseInt(array_room.haov),
"vaov": parseInt(array_room.vaov),
"hotSpots": hotSpots,
"friction": 1,
"strings": {
"loadingLabel": window.backend_labels.loading + "...",
},
});
setTimeout(function() {
if(window.is_fullscreen) {
if($('.rooms_slider').is(':visible')) {
var h_p = 75;
} else {
var h_p = 0;
}
try {
$('#video_viewer').css('height','100%');
} catch (e) {}
} else {
if($('.rooms_slider').is(':visible')) {
var h_p = 220;
} else {
var h_p = 220-75;
}
var container_h = $('#content-wrapper').height() - h_p;
try {
$('#video_viewer').css('height',container_h+'px');
} catch (e) {}
}
viewer_measure_initialized(id_measure_add, index_measure_add);
},200);
}
var list_assets = ["background"];
PIXI.Assets.add("background", image_url);
PIXI.Assets.load(list_assets).then((textures) => {
setup_video_p(null,textures);
});
} else {
$('#panorama_measures').append('<video controls playsinline webkit-playsinline id="video_viewer" class="video-js vjs-default-skin vjs-big-play-centered" style="width: 100%;height: 600px;margin: 0 auto;" muted preload="none" crossorigin="anonymous"><source src="' + video_url + '" type="' + type_video + '"/></video>');
if (window.is_fullscreen) {
if ($('.rooms_slider').is(':visible')) {
var h_p = 75;
} else {
var h_p = 0;
}
try {
$('#video_viewer').css('height', '100%');
} catch (e) {
}
} else {
if ($('.rooms_slider').is(':visible')) {
var h_p = 220;
} else {
var h_p = 220 - 75;
}
var container_h = $('#content-wrapper').height() - h_p;
try {
$('#video_viewer').css('height', container_h + 'px');
} catch (e) {
}
}
window.video_viewer = videojs('video_viewer', {
loop: true,
autoload: true,
muted: true,
controls: true,
plugins: {
pannellum: {
"autoLoad": true,
"showFullscreenCtrl": false,
"showControls": false,
"horizonPitch": parseInt(array_room.h_pitch),
"horizonRoll": parseInt(array_room.h_roll),
"hfov": 100,
"minHfov": 50,
"maxHfov": 120,
"yaw": parseFloat(window.currentYaw),
"pitch": parseFloat(window.currentPitch),
"haov": parseInt(array_room.haov),
"vaov": parseInt(array_room.vaov),
"hotSpots": hotSpots,
"friction": 1,
"strings": {
"loadingLabel": window.backend_labels.loading + "...",
},
}
}
});
window.video_viewer.load();
window.video_viewer.on('ready', function () {
window.video_viewer.play();
window.viewer = window.video_viewer.pnlmViewer;
window.viewer.on('load', function () {
viewer_measure_initialized(id_measure_add, index_measure_add);
});
});
}
} else {
if(window.id_room_alt_sel!=0) {
var multires = 0;
} else {
var multires = parseInt(array_room.multires);
}
if(multires) {
var multires_config = JSON.parse(array_room.multires_config);
window.viewer = pannellum.viewer('panorama_measures', {
"type": "multires",
"multiRes": multires_config,
"backgroundColor": [1,1,1],
"autoLoad": true,
"showFullscreenCtrl": false,
"showControls": false,
"multiResMinHfov": true,
"horizonPitch": parseInt(array_room.h_pitch),
"horizonRoll": parseInt(array_room.h_roll),
"hfov": 100,
"minHfov": 50,
"maxHfov": 120,
"yaw": parseFloat(window.currentYaw),
"pitch": parseFloat(window.currentPitch),
"haov": parseInt(array_room.haov),
"vaov": parseInt(array_room.vaov),
"friction": 1,
"hotSpots": hotSpots
});
setTimeout(function () {
viewer_measure_initialized(id_measure_add,index_measure_add);
},200);
} else {
if(window.s3_enabled==1) {
var image_url = window.s3_url+'viewer/panoramas/'+image+'?s3=1';
} else {
var image_url = '../viewer/panoramas/'+image;
}
window.viewer = pannellum.viewer('panorama_measures', {
"type": "equirectangular",
"panorama": image_url,
"autoLoad": true,
"showFullscreenCtrl": false,
"showControls": false,
"multiResMinHfov": true,
"horizonPitch": parseInt(array_room.h_pitch),
"horizonRoll": parseInt(array_room.h_roll),
"hfov": 100,
"minHfov": 50,
"maxHfov": 120,
"yaw": parseFloat(window.currentYaw),
"pitch": parseFloat(window.currentPitch),
"haov": parseInt(array_room.haov),
"vaov": parseInt(array_room.vaov),
"friction": 1,
"hotSpots": hotSpots,
"strings": {
"loadingLabel": window.backend_labels.loading+"...",
},
});
window.viewer.on("load",function () {
viewer_measure_initialized(id_measure_add,index_measure_add);
});
}
window.viewer.on('animatefinished',function () {
var yaw = parseFloat(viewer.getYaw());
var pitch = parseFloat(viewer.getPitch());
window.currentYaw = yaw;
window.currentPitch = pitch;
});
}
}
function initialize_pano_markers(id_room,image,id_marker_add,array_room) {
if(window.currentYaw==0) {
window.currentYaw = parseInt(array_room.yaw);
}
if(window.currentPitch==0) {
window.currentPitch = parseInt(array_room.pitch);
}
window.panorama_image = image;
$('#panorama_markers').show();
var hotSpots = [];
var index_marker_add = null;
jQuery.each(window.markers, function(index_m, marker_m) {
if(id_marker_add!=null) {
if(id_marker_add==marker_m.id && marker_m.what=='marker') {
index_marker_add = index_m;
}
}
if(marker_m.what=='marker') {
if(marker_m.embed_type!='') {
hotSpots.push({
"id": "m"+marker_m.id,
"type": marker_m.embed_type,
"object": "marker_embed",
"transform3d": parseInt(marker_m.transform3d),
"scale": false,
"tooltip_type": "",
"pitch": parseFloat(marker_m.pitch),
"yaw": parseFloat(marker_m.yaw),
"rotateX": 0,
"rotateZ": 0,
"size_scale": 1,
"cssClass": "hotspot-embed hotspot",
"createTooltipFunc": hotspot_embed_m,
"createTooltipArgs": marker_m,
"clickHandlerFunc": click_edit_marker,
"clickHandlerArgs": marker_m.id
});
if(marker_m.transform3d==1) {
var marker_embed_helpers = marker_m.embed_coords.split("|");
marker_embed_helpers[0] = marker_embed_helpers[0].split(",");
marker_embed_helpers[1] = marker_embed_helpers[1].split(",");
marker_embed_helpers[2] = marker_embed_helpers[2].split(",");
marker_embed_helpers[3] = marker_embed_helpers[3].split(",");
jQuery.each(marker_embed_helpers, function(index_h, marker_embed_helper) {
hotSpots.push({
"id": "m"+marker_m.id+"_"+(index_h+1),
"type": 'pointer',
"object": "marker_embed_helper",
"transform3d": false,
"pitch": parseFloat(marker_embed_helper[0]),
"yaw": parseFloat(marker_embed_helper[1]),
"size_scale": 1,
"rotateX": 0,
"rotateZ": 0,
"draggable": true,
"cssClass": "hotspot-helper",
"createTooltipFunc": hotspot_embed_helper_m,
"createTooltipArgs": [marker_m.id,(index_h+1)],
"dragHandlerFunc": drag_embed_helper_m,
"dragHandlerArgs": [marker_m,index_h]
});
});
hotSpots.push({
"id": "m"+marker_m.id+"_move",
"type": 'pointer',
"object": "marker_embed_helper",
"transform3d": false,
"pitch": parseFloat(marker_m.pitch),
"yaw": parseFloat(marker_m.yaw),
"size_scale": 1,
"rotateX": 0,
"rotateZ": 0,
"draggable": true,
"cssClass": "hotspot-helper",
"createTooltipFunc": hotspot_embed_move_m,
"createTooltipArgs": marker_m.id,
"dragHandlerFunc": drag_embed_move_m,
"dragHandlerArgs": [marker_m.id,index_m]
});
}
} else {
hotSpots.push({
"id": marker_m.id,
"type": 'marker',
"transform3d": false,
"scale": (parseInt(marker_m.scale)==1) ? true : false,
"pitch": parseFloat(marker_m.pitch),
"yaw": parseFloat(marker_m.yaw),
"rotateX": parseInt(marker_m.rotateX),
"rotateZ": parseInt(marker_m.rotateZ),
"size_scale": parseFloat(marker_m.size_scale),
"cssClass": "custom-hotspot hotspot",
"createTooltipFunc": hotspot_m,
"createTooltipArgs": marker_m,
"clickHandlerFunc": click_edit_marker,
"clickHandlerArgs": marker_m.id
});
}
} else {
if(marker_m.embed_type!='') {
hotSpots.push({
"id": "p"+marker_m.id,
"type": marker_m.embed_type,
"object": "poi_embed",
"transform3d": parseInt(marker_m.transform3d),
"scale": false,
"tooltip_type": "",
"pitch": parseFloat(marker_m.pitch),
"yaw": parseFloat(marker_m.yaw),
"rotateX": 0,
"rotateZ": 0,
"size_scale": 1,
"cssClass": "hotspot-embed hotspot",
"createTooltipFunc": hotspot_embed,
"createTooltipArgs": marker_m,
});
if(marker_m.transform3d==1) {
var poi_embed_helpers = marker_m.embed_coords.split("|");
poi_embed_helpers[0] = poi_embed_helpers[0].split(",");
poi_embed_helpers[1] = poi_embed_helpers[1].split(",");
poi_embed_helpers[2] = poi_embed_helpers[2].split(",");
poi_embed_helpers[3] = poi_embed_helpers[3].split(",");
jQuery.each(poi_embed_helpers, function(index_h, poi_embed_helper) {
hotSpots.push({
"id": "p"+marker_m.id+"_"+(index_h+1),
"type": 'pointer',
"object": "poi_embed_helper",
"transform3d": false,
"pitch": parseFloat(poi_embed_helper[0]),
"yaw": parseFloat(poi_embed_helper[1]),
"size_scale": 1,
"rotateX": 0,
"rotateZ": 0,
"draggable": true,
"cssClass": "hotspot-helper",
"createTooltipFunc": hotspot_embed_helper,
"createTooltipArgs": [marker_m.id,(index_h+1)],
});
});
hotSpots.push({
"id": "p"+marker_m.id+"_move",
"type": 'pointer',
"object": "poi_embed_helper",
"transform3d": false,
"pitch": parseFloat(marker_m.pitch),
"yaw": parseFloat(marker_m.yaw),
"size_scale": 1,
"rotateX": 0,
"rotateZ": 0,
"draggable": true,
"cssClass": "hotspot-helper",
"createTooltipFunc": hotspot_embed_move,
"createTooltipArgs": marker_m.id
});
}
} else {
switch(marker_m.type) {
case 'callout':
hotSpots.push({
"type": 'poi',
"transform3d": false,
"scale": false,
"pitch": parseFloat(marker_m.pitch),
"yaw": parseFloat(marker_m.yaw),
"rotateX": 0,
"rotateZ": 0,
"size_scale": 1,
"cssClass": "custom-hotspot-content hotspot",
"createTooltipFunc": hotspot_p_callout,
"createTooltipArgs": marker_m,
});
break;
default:
hotSpots.push({
"type": 'poi',
"transform3d": false,
"scale": (parseInt(marker_m.scale)==1) ? true : false,
"pitch": parseFloat(marker_m.pitch),
"yaw": parseFloat(marker_m.yaw),
"rotateX": parseInt(marker_m.rotateX),
"rotateZ": parseInt(marker_m.rotateZ),
"size_scale": parseFloat(marker_m.size_scale),
"cssClass": "custom-hotspot-content hotspot",
"createTooltipFunc": hotspot_p,
"createTooltipArgs": marker_m,
});
break;
}
}
}
});
try {
window.video_viewer.dispose();
} catch (e) {}
try {
window.viewer.destroy();
} catch (e) {}
$('#panorama_markers').empty();
if(array_room.room_type == 'video') {
var fileExt = array_room.panorama_video.split('.').pop().toLowerCase();
switch(fileExt) {
case 'webm':
var type_video = 'video/webm';
break;
default:
var type_video = 'video/mp4';
break;
}
if(window.s3_enabled==1) {
var video_url = window.s3_url+'viewer/videos/'+array_room.panorama_video;
var image_url = window.s3_url+'viewer/panoramas/'+image+'?s3=1';
} else {
var video_url = '../viewer/videos/'+array_room.panorama_video;
var image_url = '../viewer/panoramas/'+image;
}
if(window.is_mobile) {
try {
loader_p.reset();
} catch (e) {}
try {
video_p.remove();
} catch (e) {}
$("#canvas_p").empty();
var setup_video_p = (loader, resources) => {
PIXI.utils.sayHello("WebGL");
var index_bg = Object.keys(resources)[0];
app_p = new PIXI.Application({
antialias: false,
transparent: false,
resolution: 1,
width: resources[index_bg].baseTexture.width,
height: resources[index_bg].baseTexture.height
});
$("#canvas_p").append(app_p.view);
let bg = PIXI.Sprite.from(resources[index_bg]);
/*bg.anchor.y = 1;
bg.scale.y = -1;*/
app_p.stage.addChild(bg);
video_p = document.createElement('video');
video_p.id = 'video_viewer';
video_p.crossOrigin = 'anonymous';
video_p.preload = 'auto';
video_p.autoplay = true;
video_p.muted = true;
video_p.loop = true;
video_p.oncanplay = function () {
video_p.play();
};
video_p.setAttribute('playsinline', '');
video_p.setAttribute('webkit-playsinline', '');
video_p.src = video_url;
const sprite = PIXI.Sprite.from(video_p);
/*sprite.anchor.y = 1;
sprite.scale.y = -1;*/
app_p.stage.addChild(sprite);
let canvas = $('#canvas_p canvas')[0];
window.viewer = pannellum.viewer('panorama_markers', {
"id_room": window.id_room,
"type": "equirectangular",
"panorama": canvas,
"autoLoad": true,
"dynamic": true,
"dynamicUpdate": true,
"showFullscreenCtrl": false,
"showControls": false,
"horizonPitch": parseInt(array_room.h_pitch),
"horizonRoll": parseInt(array_room.h_roll),
"hfov": 100,
"minHfov": 50,
"maxHfov": 120,
"yaw": parseFloat(window.currentYaw),
"pitch": parseFloat(window.currentPitch),
"haov": parseInt(array_room.haov),
"vaov": parseInt(array_room.vaov),
"hotSpots": hotSpots,
"friction": 1,
"strings": {
"loadingLabel": window.backend_labels.loading + "...",
},
});
setTimeout(function() {
if(window.is_fullscreen) {
if($('.rooms_slider').is(':visible')) {
var h_p = 75;
} else {
var h_p = 0;
}
try {
$('#video_viewer').css('height','100%');
} catch (e) {}
} else {
if($('.rooms_slider').is(':visible')) {
var h_p = 220;
} else {
var h_p = 220-75;
}
var container_h = $('#content-wrapper').height() - h_p;
try {
$('#video_viewer').css('height',container_h+'px');
} catch (e) {}
}
viewer_marker_initialized(id_marker_add,index_marker_add);
},200);
}
var list_assets = ["background"];
PIXI.Assets.add("background", image_url);
PIXI.Assets.load(list_assets).then((textures) => {
setup_video_p(null,textures);
});
} else {
$('#panorama_markers').append('<video controls playsinline webkit-playsinline id="video_viewer" class="video-js vjs-default-skin vjs-big-play-centered" style="width: 100%;height: 600px;margin: 0 auto;" muted preload="none" crossorigin="anonymous"><source src="' + video_url + '" type="' + type_video + '"/></video>');
if (window.is_fullscreen) {
if ($('.rooms_slider').is(':visible')) {
var h_p = 75;
} else {
var h_p = 0;
}
try {
$('#video_viewer').css('height', '100%');
} catch (e) {
}
} else {
if ($('.rooms_slider').is(':visible')) {
var h_p = 225;
} else {
var h_p = 225 - 75;
}
var container_h = $('#content-wrapper').height() - h_p;
try {
$('#video_viewer').css('height', container_h + 'px');
} catch (e) {
}
}
window.video_viewer = videojs('video_viewer', {
loop: true,
autoload: true,
muted: true,
controls: true,
plugins: {
pannellum: {
"autoLoad": true,
"showFullscreenCtrl": false,
"showControls": false,
"horizonPitch": parseInt(array_room.h_pitch),
"horizonRoll": parseInt(array_room.h_roll),
"hfov": 100,
"minHfov": 50,
"maxHfov": 120,
"yaw": parseFloat(window.currentYaw),
"pitch": parseFloat(window.currentPitch),
"haov": parseInt(array_room.haov),
"vaov": parseInt(array_room.vaov),
"hotSpots": hotSpots,
"friction": 1,
"compass": true,
"northOffset": parseInt(array_room.northOffset),
"strings": {
"loadingLabel": window.backend_labels.loading + "...",
},
}
}
});
window.video_viewer.load();
window.video_viewer.on('ready', function () {
window.video_viewer.play();
window.viewer = window.video_viewer.pnlmViewer;
window.viewer.on('load', function () {
viewer_marker_initialized(id_marker_add, index_marker_add);
});
});
}
} else {
if(window.id_room_alt_sel!=0) {
var multires = 0;
} else {
var multires = parseInt(array_room.multires);
}
if(multires) {
var multires_config = JSON.parse(array_room.multires_config);
window.viewer = pannellum.viewer('panorama_markers', {
"type": "multires",
"multiRes": multires_config,
"backgroundColor": [1,1,1],
"autoLoad": true,
"showFullscreenCtrl": false,
"showControls": false,
"multiResMinHfov": true,
"horizonPitch": parseInt(array_room.h_pitch),
"horizonRoll": parseInt(array_room.h_roll),
"hfov": 100,
"minHfov": 50,
"maxHfov": 120,
"yaw": parseFloat(window.currentYaw),
"pitch": parseFloat(window.currentPitch),
"haov": parseInt(array_room.haov),
"vaov": parseInt(array_room.vaov),
"friction": 1,
"compass": true,
"northOffset": parseInt(array_room.northOffset),
"hotSpots": hotSpots,
"strings": {
"loadingLabel": window.backend_labels.loading+"...",
},
});
setTimeout(function () {
viewer_marker_initialized(id_marker_add,index_marker_add);
},200);
} else {
if(window.s3_enabled==1) {
var image_url = window.s3_url+'viewer/panoramas/'+image+'?s3=1';
} else {
var image_url = '../viewer/panoramas/'+image;
}
window.viewer = pannellum.viewer('panorama_markers', {
"type": "equirectangular",
"panorama": image_url,
"autoLoad": true,
"showFullscreenCtrl": false,
"showControls": false,
"multiResMinHfov": true,
"horizonPitch": parseInt(array_room.h_pitch),
"horizonRoll": parseInt(array_room.h_roll),
"hfov": 100,
"minHfov": 50,
"maxHfov": 120,
"yaw": parseFloat(window.currentYaw),
"pitch": parseFloat(window.currentPitch),
"haov": parseInt(array_room.haov),
"vaov": parseInt(array_room.vaov),
"friction": 1,
"compass": true,
"northOffset": parseInt(array_room.northOffset),
"hotSpots": hotSpots,
"strings": {
"loadingLabel": window.backend_labels.loading+"...",
},
});
window.viewer.on("load",function () {
viewer_marker_initialized(id_marker_add,index_marker_add);
});
}
window.viewer.on('animatefinished',function () {
var yaw = parseFloat(window.viewer.getYaw());
var pitch = parseFloat(window.viewer.getPitch());
window.currentYaw = yaw;
window.currentPitch = pitch;
});
}
}
function viewer_poi_initialized(id_poi_add,index_poi_add) {
window.viewer_initialized = true;
check_plan(window.id_user,'poi');
if(window.can_create) {
$('#plan_poi_msg').addClass('d-none');
$('#btn_add_poi').css({'opacity':1,'pointer-events':'initial'});
} else {
$('#plan_poi_msg').removeClass('d-none');
$('#btn_add_poi').css({'opacity':0.3,'pointer-events':'none'});
}
$('#btn_list_hs').css({'opacity':1,'pointer-events':'initial'});
$('#btn_list_hs').removeClass('disabled');
$('#btn_switch_to_marker').css({'opacity':1,'pointer-events':'initial'});
$('#btn_preview_modal').css({'opacity':1,'pointer-events':'initial'});
$('#btn_toggle_fullscreen').css({'opacity':1,'pointer-events':'initial'});
$('.rooms_view_sel').show();
$('.icon_visible_view').show();
$('.div_panorama_container').append('<i class="fas fa-dot-circle center_helper"></i>');
var poi_embed_count = $('.poi_embed').length;
if(poi_embed_count>0) {
init_poi_embed();
} else {
window.sync_poi_embed_enabled = false;
}
var marker_embed_count = $('.marker_embed').length;
if(marker_embed_count>0) {
init_marker_embed();
} else {
window.sync_marker_embed_enabled = false;
}
setTimeout(function () {
try {
window.viewer.reisze();
} catch (e) {}
try {
window.video_viewer.pnlmViewer.resize();
} catch (e) {}
},100);
if(!$('.icon_visible_view').hasClass('hidden')) {
toggle_visible_view('poi');
}
$(window).trigger('resize');
if(id_poi_add==null && window.wizard_step!=-1) {
$('#btn_add_poi').addClass('disabled');
$('#btn_list_hs').addClass('disabled');
$('#btn_switch_to_marker').addClass('disabled');
$('#btn_preview_modal').addClass('disabled');
$('#btn_toggle_fullscreen').addClass('disabled');
$('.rooms_view_sel').addClass('disabled');
Shepherd.activeTour.next();
} else if(id_poi_add!=null && window.wizard_step!=-1) {
edit_p(id_poi_add,index_poi_add,id_poi_add);
$('#btn_media_library').addClass('disabled');
$('.center_helper').hide();
}
if(id_poi_add!=null && window.wizard_step==-1) {
$('.hotspot_'+id_poi_add).trigger('click');
if(parseInt(window.pois[index_poi_add].scale)==1) {
render_poi(id_poi_add,index_poi_add);
}
$('#action_box').css('opacity',0);
setTimeout(function() {
move_p(id_poi_add,index_poi_add,id_poi_add);
$('#action_box').css('opacity',1);
},250);
$('.center_helper').hide();
} else {
$('.center_helper').show();
}
}
window.adjust_measurements = function(edit) {
if(window.enable_adjust_measurements) {
for(var i=0; i<window.measures.length; i++) {
if(window.measures[i].index_line!=='') {
var id_line = window.measures[i].id;
var visible_start = $('#measure_'+id_line+'_start').parent().css('visibility');
var visible_end = $('#measure_'+id_line+'_end').parent().css('visibility');
if(visible_start=='hidden' || visible_end=='hidden') {
window.measure_lines[window.measures[i].index_line].hide('none', {duration: 0});
} else {
if(edit) {
window.measure_lines[window.measures[i].index_line].show('none', {duration: 0});
} else {
window.measure_lines[window.measures[i].index_line].show('fade', {duration: 100});
}
window.measure_lines[window.measures[i].index_line].position();
}
}
}
}
if(edit) {
$('.leader-line').css({'opacity':0.5,'pointer-events':'none'});
$('#line_'+window.measure_id_edit).css({'opacity':1,'pointer-events':'none'});
}
};
function initialize_measures(edit) {
$('.leader-line').remove();
for(var i=0; i<window.measures.length; i++) {
window.measures[i].index_line = '';
}
window.measure_lines = [];
var index_line = 0;
for(var i=0; i<window.measures.length; i++) {
var id_line = parseInt(window.measures[i].id);
var params = JSON.parse(window.measures[i].params);
var label = window.measures[i].label;
window.measures[i].index_line = index_line;
window.measure_lines[index_line] = new LeaderLine(
LeaderLine.pointAnchor({element: document.getElementById('measure_'+id_line+'_start'), x: 0, y: 0}),
LeaderLine.pointAnchor({element: document.getElementById('measure_'+id_line+'_end'), x: 0, y: 0}),
{
hide: true,
color:params.color_line,
size:params.line_size,
path:'straight',
startPlug:params.start_plug,
endPlug:params.end_plug,
startPlugColor:params.start_plug_color,
endPlugColor:params.end_plug_color,
startPlugSize: params.start_plug_size,
endPlugSize: params.end_plug_size,
middleLabel: LeaderLine.pathLabel(label, {color: params.color_text, fontFamily: window.viewer_font_family, fontSize: params.size_text+'px', outlineColor: params.color_outline_text})
}
);
var svg = document.querySelector('body>.leader-line:last-child');
svg.id = 'line_'+id_line;
svg.setAttribute('visible_multiview_ids',window.measures[i].visible_multiview_ids);
index_line++;
}
$("svg.leader-line").detach().appendTo(".pnlm-ui");
$('svg.leader-line path,svg.leader-line text,svg.leader-line use').on('click',function() {
if(!window.is_editing) {
var svg = findUpTag($(this)[0],'svg');
var id_line = svg.id.replace('line_','');
$('svg.leader-line').css({'opacity':0.5});
$('#line_'+id_line).css({'opacity':1});
$('.measure_points').css({'opacity':0,'pointer-events':'none'});
click_edit_measure(id_line);
}
});
adjust_measurements(edit);
}
function findUpTag(el, tag) {
var r = el;
while (r.parentNode) {
r = r.parentNode;
if (r.tagName === tag)
return r;
}
return null;
}
function viewer_measure_initialized(id_measure_add,index_measure_add) {
window.viewer_initialized = true;
initialize_measures(false);
$('#plan_marker_msg').addClass('d-none');
$('#btn_list_hs').css({'opacity':1,'pointer-events':'initial'});
$('#btn_list_hs').removeClass('disabled');
$('#btn_add_measure').css({'opacity':1,'pointer-events':'initial'});
$('#btn_preview_modal').css({'opacity':1,'pointer-events':'initial'});
$('#btn_toggle_fullscreen').css({'opacity':1,'pointer-events':'initial'});
$('.rooms_view_sel').show();
$('.icon_visible_view').show();
$('#panorama_measures').append('<i class="fas fa-dot-circle center_helper"></i>');
$('.center_helper').show();
setTimeout(function () {
try {
window.viewer.reisze();
} catch (e) {}
try {
window.video_viewer.pnlmViewer.resize();
} catch (e) {}
},100);
if(!$('.icon_visible_view').hasClass('hidden')) {
toggle_visible_view('measure');
}
$(window).trigger('resize');
if(id_measure_add!=null) {
move_ms(id_measure_add,index_measure_add,id_measure_add);
}
}
function viewer_marker_initialized(id_marker_add,index_marker_add) {
window.viewer_initialized = true;
if(window.rooms_count>1) {
check_plan(window.id_user,'marker');
if(window.can_create) {
$('#plan_marker_msg').addClass('d-none');
$('#btn_add_marker').css({'opacity':1,'pointer-events':'initial'});
} else {
$('#plan_marker_msg').removeClass('d-none');
$('#btn_add_marker').css({'opacity':0.3,'pointer-events':'none'});
}
} else {
$('#btn_add_marker').css({'opacity':0.3,'pointer-events':'none'});
}
$('#btn_list_hs').css({'opacity':1,'pointer-events':'initial'});
$('#btn_list_hs').removeClass('disabled');
$('#btn_switch_to_poi').css({'opacity':1,'pointer-events':'initial'});
$('#btn_preview_modal').css({'opacity':1,'pointer-events':'initial'});
$('#btn_toggle_fullscreen').css({'opacity':1,'pointer-events':'initial'});
$('.rooms_view_sel').show();
$('.icon_visible_view').show();
$('#panorama_markers').append('<i class="fas fa-dot-circle center_helper"></i>');
var poi_embed_count = $('.poi_embed').length;
if(poi_embed_count>0) {
init_poi_embed();
} else {
window.sync_poi_embed_enabled = false;
}
var marker_embed_count = $('.marker_embed').length;
if(marker_embed_count>0) {
init_marker_embed();
} else {
window.sync_marker_embed_enabled = false;
}
setTimeout(function () {
try {
window.viewer.reisze();
} catch (e) {}
try {
window.video_viewer.pnlmViewer.resize();
} catch (e) {}
},100);
if(!$('.icon_visible_view').hasClass('hidden')) {
toggle_visible_view('marker');
}
$(window).trigger('resize');
if(id_marker_add==null && window.wizard_step!=-1) {
$('#btn_add_marker').addClass('disabled');
$('#btn_list_hs').addClass('disabled');
$('#btn_switch_to_poi').addClass('disabled');
$('#btn_preview_modal').addClass('disabled');
$('#btn_toggle_fullscreen').addClass('disabled');
$('.rooms_view_sel').addClass('disabled');
Shepherd.activeTour.next();
} else if(id_marker_add!=null && window.wizard_step!=-1) {
Shepherd.activeTour.next();
}
if(id_marker_add!=null && window.wizard_step==-1) {
$('.hotspot_'+id_marker_add).trigger('click');
if(parseInt(window.markers[index_marker_add].scale)==1) {
render_marker(id_marker_add,index_marker_add);
}
$('#action_box').css('opacity',0);
setTimeout(function() {
move_m(id_marker_add,index_marker_add);
$('#action_box').css('opacity',1);
},250);
$('.center_helper').hide();
} else {
$('.center_helper').show();
}
}
window.click_edit_marker = function(hotSpotDiv,args) {
$('#slider_hs_list #hs_'+args).addClass('active');
if(!window.is_editing) {
$('.center_helper').hide();
$('.custom-hotspot').css('opacity',0.5);
$('.hotspot_'+args).css('opacity',1);
jQuery.each(window.markers, function(index_m, marker_m) {
if(marker_m.what=='marker') {
if(parseInt(marker_m.id)==parseInt(args)) {
var yaw = parseFloat(marker_m.yaw);
var pitch = parseFloat(marker_m.pitch);
window.viewer.lookAt(pitch,yaw,100,200,function () {
setTimeout(function () {
adjust_marker_embed_helpers_all();
},200);
$('.move_action').attr('onclick','move_m('+args+','+index_m+')');
$('.edit_action').attr('onclick','edit_m('+args+','+index_m+')');
$('.delete_action').attr('onclick','modal_delete_marker('+args+','+window.id_room_sel+',\''+window.panorama_image+'\')');
$('.goto_action').attr('onclick','goto_m('+args+','+index_m+')');
var marker_edit_label = '';
switch(marker_m.embed_type) {
case 'selection':
marker_edit_label += '<i class="far fa-square"></i> <i class="fas fa-caret-right"></i> ';
break;
default:
marker_edit_label += '<i class="fas fa-info-circle"></i> <i class="fas fa-caret-right"></i> ';
break;
}
$('.marker_edit_label').html(marker_edit_label+' '+marker_m.name_room_target);
$('#action_box').show();
});
return;
}
}
});
}
}
window.click_edit_poi = function(hotSpotDiv,args) {
$('#slider_hs_list #hs_'+args).addClass('active');
if(!window.is_editing) {
$('.center_helper').hide();
$('.custom-hotspot-content').css('opacity',0.5);
$('.hotspot-embed').css('opacity',0.5);
$('.hotspot_'+args).css('opacity',1);
$('.edit_action').removeClass('disabled');
jQuery.each(window.pois, function(index, poi) {
if(poi.what=='poi') {
if(parseInt(poi.id)==parseInt(args)) {
var yaw = parseFloat(poi.yaw);
var pitch = parseFloat(poi.pitch);
window.viewer.lookAt(pitch,yaw,100,200,function () {
clearInterval(interval_adjust_embed_helpers_all);
interval_adjust_embed_helpers_all = setInterval(function () {
adjust_poi_embed_helpers_all();
adjust_marker_embed_helpers_all();
count_adjust_embed_helpers_all++;
if(count_adjust_embed_helpers_all>=500) {
clearInterval(interval_adjust_embed_helpers_all);
count_adjust_embed_helpers_all=0;
}
},1);
$('.move_action').attr('onclick','move_p('+args+','+index+',null)');
$('.edit_action').attr('onclick','edit_p('+args+','+index+',null)');
$('.duplicate_action').attr('onclick','modal_duplicate_poi('+args+','+window.id_room_sel+')');
$('.delete_action').attr('onclick','modal_delete_poi('+args+','+window.id_room_sel+',\''+window.panorama_image+'\')');
var poi_edit_label = '';
switch(poi.embed_type) {
case 'image':
poi_edit_label += '<i class="fas fa-image"></i> <i class="fas fa-caret-right"></i> ';
break;
case 'video':
poi_edit_label += '<i class="fab fa-youtube"></i> <i class="fas fa-caret-right"></i> ';
break;
case 'video_transparent':
case 'video_chroma':
poi_edit_label += '<i class="fas fa-video"></i> <i class="fas fa-caret-right"></i> ';
break;
case 'object3d':
poi_edit_label += '<i class="fas fa-cube"></i> <i class="fas fa-caret-right"></i> ';
break;
case 'gallery':
poi_edit_label += '<i class="fas fa-images"></i> <i class="fas fa-caret-right"></i> ';
break;
case 'link':
poi_edit_label += '<i class="fas fa-external-link-alt"></i> <i class="fas fa-caret-right"></i> ';
break;
case 'text':
poi_edit_label += '<i class="fas fa-heading"></i> <i class="fas fa-caret-right"></i> ';
break;
case 'html':
poi_edit_label += '<i class="fas fa-code"></i> <i class="fas fa-caret-right"></i> ';
break;
case 'selection':
poi_edit_label += '<i class="far fa-square"></i> <i class="fas fa-caret-right"></i> ';
break;
default:
poi_edit_label += '<i class="fas fa-info-circle"></i> <i class="fas fa-caret-right"></i> ';
break;
}
switch(poi.type) {
case 'image':
poi_edit_label += '<i class="fas fa-image"></i> '+window.backend_labels.image;
break;
case 'gallery':
poi_edit_label += '<i class="fas fa-images"></i> '+window.backend_labels.image_gallery;
break;
case 'video':
poi_edit_label += '<i class="fab fa-youtube"></i> '+window.backend_labels.video;
break;
case 'audio':
poi_edit_label += '<i class="fas fa-music"></i> '+window.backend_labels.audio;
break;
case 'video360':
poi_edit_label += '<i class="fas fa-video"></i> '+window.backend_labels.video360;
break;
case 'link':
poi_edit_label += '<i class="fas fa-link"></i> '+window.backend_labels.link;
break;
case 'pdf':
poi_edit_label += '<i class="fas fa-file-pdf"></i> '+window.backend_labels.pdf;
break;
case 'pointclouds':
poi_edit_label += '<i class="fas fa-dice-d20"></i> '+window.backend_labels.pointclouds;
break;
case 'link_ext':
poi_edit_label += '<i class="fas fa-external-link-alt"></i> '+window.backend_labels.link_ext;
break;
case 'html':
poi_edit_label += '<i class="fas fa-heading"></i> '+window.backend_labels.html;
break;
case 'html_sc':
poi_edit_label += '<i class="fas fa-code"></i> '+window.backend_labels.html_sc;
break;
case 'download':
poi_edit_label += '<i class="fas fa-download"></i> '+window.backend_labels.download;
break;
case 'form':
poi_edit_label += '<i class="fab fa-wpforms"></i> '+window.backend_labels.form;
break;
case 'google_maps':
poi_edit_label += '<i class="fas fa-map"></i> '+window.backend_labels.google_maps;
break;
case 'object360':
poi_edit_label += '<i class="fas fa-compact-disc"></i> '+window.backend_labels.object360;
break;
case 'object3d':
poi_edit_label += '<i class="fas fa-cube"></i> '+window.backend_labels.object3d;
break;
case 'lottie':
poi_edit_label += '<i class="fab fa-deviantart"></i> Lottie';
break;
case 'product':
poi_edit_label += '<i class="fas fa-shopping-cart"></i> '+window.backend_labels.product;
break;
case 'switch_pano':
poi_edit_label += '<i class="fas fa-sync-alt"></i> '+window.backend_labels.switch_pano;
break;
case 'callout':
poi_edit_label = '<i class="far fa-dot-circle"></i> '+window.backend_labels.callout;
break;
default:
switch(poi.embed_type) {
case 'image':
poi_edit_label = '<i class="fas fa-image"></i> '+window.backend_labels.embed_image;
break;
case 'video':
poi_edit_label = '<i class="fas fa-video"></i> '+window.backend_labels.embed_video;
break;
case 'video_transparent':
poi_edit_label = '<i class="fas fa-video"></i> '+window.backend_labels.embed_video_transparent;
break;
case 'video_chroma':
poi_edit_label = '<i class="fas fa-video"></i> '+window.backend_labels.embed_video_chroma;
break;
case 'object3d':
poi_edit_label = '<i class="fas fa-cube"></i> '+window.backend_labels.embed_object3d;
break;
case 'gallery':
poi_edit_label = '<i class="fas fa-images"></i> '+window.backend_labels.embed_gallery;
break;
case 'link':
poi_edit_label = '<i class="fas fa-images"></i> '+window.backend_labels.embed_link;
break;
case 'text':
poi_edit_label = '<i class="fas fa-heading"></i> '+window.backend_labels.embed_text;
break;
case 'html':
poi_edit_label = '<i class="fas fa-code"></i> '+window.backend_labels.embed_html;
break;
case 'selection':
poi_edit_label = '<i class="far fa-square"></i> '+window.backend_labels.embed_selection;
break;
default:
poi_edit_label += '<i class="fas fa-ban"></i> '+window.backend_labels.none;
break;
}
break;
}
$('.poi_edit_label').html(poi_edit_label);
$('#action_box').show();
});
return;
}
}
});
}
}
var mid_point = ([x1, y1], [x2, y2]) => [(x1 + x2) / 2, (y1 + y2) / 2];
window.click_edit_measure = function(id) {
$('#slider_hs_list #hs_'+id).addClass('active');
if(!window.is_editing) {
$('.center_helper').hide();
$('.edit_action').removeClass('disabled');
jQuery.each(window.measures, function(index, measure) {
if(parseInt(measure.id)==parseInt(id)) {
var yaw_start = parseFloat(measure.yaw_start);
var pitch_start = parseFloat(measure.pitch_start);
var yaw_end = parseFloat(measure.yaw_end);
var pitch_end = parseFloat(measure.pitch_end);
var tmp_coords = mid_point([yaw_start,pitch_start],[yaw_end,pitch_end]);
var yaw = tmp_coords[0];
var pitch = tmp_coords[1];
window.viewer.lookAt(pitch,yaw,100,200,function () {
$('.move_action').attr('onclick','move_ms('+id+','+index+')');
$('.edit_action').attr('onclick','edit_ms('+id+','+index+')');
$('.delete_action').attr('onclick','modal_delete_measure('+id+','+window.id_room_sel+',\''+window.panorama_image+'\')');
$('.measure_edit_label').html('<i class="fas fa-arrows-alt-h"></i> '+window.backend_labels.measure_label+' '+(index+1));
$('#action_box').show();
});
return;
}
});
}
}
window.check_schedule = function () {
if($('#enable_schedule').is(':checked')) {
$('#confirm_schedule input').prop("disabled",false);
} else {
$('#confirm_schedule input').prop("disabled",true);
}
$('#enable_schedule').prop("disabled",false);
}
window.show_poi_confirm = function (show) {
if(show) {
$('.btn_confirm').show();
} else {
$('.btn_confirm').hide();
}
}
window.show_marker_apply_style = function (show) {
if(show && window.markers[marker_index_edit].embed_type=='') {
$('.btn_apply_style_all').show();
$('#exclude_from_apply_all').parent().parent().show();
} else {
$('.btn_apply_style_all').hide();
$('#exclude_from_apply_all').parent().parent().hide();
}
}
window.show_marker_apply_move = function (show) {
if(show && window.markers[marker_index_edit].embed_type=='') {
$('.btn_apply_move_all').show();
} else {
$('.btn_apply_move_all').hide();
}
}
window.show_poi_apply_style = function (show) {
if(show && window.pois[poi_index_edit].embed_type=='' && window.pois[poi_index_edit].type!='callout') {
$('.btn_apply_style_all').show();
$('#exclude_from_apply_all').parent().parent().show();
} else {
$('.btn_apply_style_all').hide();
$('#exclude_from_apply_all').parent().parent().hide();
}
if($('.lang_input_switcher').length) {
setTimeout(function() {
render_poi(poi_id_edit,poi_index_edit);
},250);
}
}
window.show_poi_apply_move = function (show) {
if(show && window.pois[poi_index_edit].embed_type=='' && window.pois[poi_index_edit].type!='callout') {
$('.btn_apply_move_all').show();
} else {
$('.btn_apply_move_all').hide();
}
}
window.change_switch_panorama_default = function() {
if($('#switch_panorama_default').is(':checked')) {
$('#frm_sp_edit').addClass('disabled');
$('#poi_content').parent().parent().addClass('disabled');
} else {
$('#frm_sp_edit').removeClass('disabled');
$('#poi_content').parent().parent().removeClass('disabled');
}
}
window.edit_p = function(id,index,id_poi_add) {
window.poi_index_edit = index;
window.poi_id_edit = id;
show_poi_confirm(true);
$('.btn_apply_style_all').hide();
$('#exclude_from_apply_all').parent().parent().hide();
$('#action_box').hide();
$('.rooms_slider').addClass('disabled');
$('.rooms_slider').hide();
$(window).trigger('resize');
$('#btn_add_poi').addClass('disabled');
$('#btn_list_hs').addClass('disabled');
close_list_hs();
$('#btn_switch_to_marker').addClass('disabled');
$('#btn_preview_modal').addClass('disabled');
$('#btn_toggle_fullscreen').addClass('disabled');
$('.rooms_view_sel').addClass('disabled');
$('.icon_visible_view').addClass('disabled');
$('#confirm_edit .btn_confirm').attr('onclick','confirm_edit_poi('+id+','+index+')');
$('#confirm_edit .btn_close').attr('onclick','exit_edit_poi('+id+','+index+')');
if(parseInt(window.pois[index].exclude_from_apply_all)==1) {
$('#exclude_from_apply_all').prop('checked',true);
} else {
$('#exclude_from_apply_all').prop('checked',false);
}
var yaw = parseFloat(window.pois[index].yaw);
var pitch = parseFloat(window.pois[index].pitch)+20;
if(window.pois[index].embed_type=='') {
window.viewer.lookAt(pitch,yaw,100,200);
}
$('#id_poi_autoopen').parent().parent().removeClass('col-md-12').addClass('col-md-3');
$('#div_form_edit').hide();
$('#frm_edit').hide();
$('#frm_d_edit').hide();
$('#frm_v_edit').hide();
$('#frm_a_edit').hide();
$('#frm_g_edit').hide();
$('#frm_j_edit').hide();
$('#frm_sp_edit').hide();
$('#frm_pdf_edit').hide();
$('#frm_pc_edit').hide();
$('#poi_content').parent().parent().hide();
$('#poi_target').parent().hide();
$('#poi_song_bg_volume').parent().hide();
$('#poi_title').parent().hide();
$('#poi_description').parent().hide();
$('#poi_content_html').parent().parent().hide();
$('#poi_content_html_sc').parent().hide();
$('#btn_poi_gallery').parent().hide();
$('.gallery_params_div').hide();
$('#btn_poi_object360').parent().hide();
$('#poi_gm_map').parent().hide();
$('#poi_gm_street').parent().hide();
$('#poi_content_product_div').hide();
$('#id_poi_autoopen').parent().hide();
$('#auto_close').parent().hide();
$('#view_type').parent().hide();
$('#view_type').prop('disabled',false);
$('#box_pos').parent().hide();
$('#box_max_width').parent().hide();
$('#box_maximize').parent().hide();
$('#box_background').parent().parent().hide();
$('#box_color').parent().parent().hide();
$('#poi_gm_map').val('');
$('#poi_gm_street').val('');
$('#poi_content').prop('readonly',false);
$('#switch_panorama_default').parent().hide();
$('.callout_settings').hide();
$('#btn_preview_poi_content i').removeClass('fa-cog').addClass('fa-eye');
window.content_current = window.pois[index].type;
if(window.pois[index].type=='') {
select_poi_content_edit('none');
} else {
select_poi_content_edit(window.pois[index].type);
}
$('#poi_content').attr('data-type',window.pois[index].type);
switch(window.pois[index].type) {
case 'image':
$('#frm_edit').show();
$('#poi_content').parent().parent().show();
$('#poi_title').parent().show();
$('#poi_description').parent().show();
$('#id_poi_autoopen').parent().show();
$('#auto_close').parent().show();
$('#view_type').parent().show();
$('#box_pos').parent().show();
$('#box_max_width').parent().show();
$('#box_maximize').parent().show();
$('#box_background').parent().parent().show();
$('#box_color').parent().parent().show();
$('#content_label').html(window.backend_labels.content_image);
$('#poi_content').val(window.pois[index].content);
$('#poi_title').val(window.pois[index].title);
$('#poi_description').val(window.pois[index].description);
break;
case 'gallery':
$('#btn_poi_gallery').parent().show();
$('.gallery_params_div').show();
$('#id_poi_autoopen').parent().show();
$('#auto_close').parent().show();
$('#view_type').parent().show();
$('#box_pos').parent().show();
$('#box_max_width').parent().show();
$('#box_maximize').parent().show();
$('#box_background').parent().parent().show();
$('#box_color').parent().parent().show();
var poi_gallery_order = 'sort';
var gallery_transition = 'swipe';
var gallery_thumbs = 'bottomOverMedia';
var gallery_autoplay = false;
var gallery_slide_duration = 4;
if(window.pois[index].params!='') {
try {
var array_params = JSON.parse(window.pois[index].params);
if ('order' in array_params) {
poi_gallery_order = array_params.order;
}
if ('gallery_transition' in array_params) {
gallery_transition = array_params.gallery_transition;
}
if ('gallery_thumbs' in array_params) {
gallery_thumbs = array_params.gallery_thumbs;
}
if ('gallery_autoplay' in array_params) {
gallery_autoplay = array_params.gallery_autoplay;
}
if ('gallery_slide_duration' in array_params) {
gallery_slide_duration = array_params.gallery_slide_duration;
}
} catch (e) {}
}
if(poi_gallery_order=='random') {
$('#poi_gallery_random').prop('checked',true);
} else {
$('#poi_gallery_random').prop('checked',false);
}
$("#g_transition option[id='"+gallery_transition+"']").prop("selected", true);
$("#g_thumbs option[id='"+gallery_thumbs+"']").prop("selected", true);
if(parseInt(gallery_autoplay)==1) {
$('#g_autoplay').prop('checked',true);
$('#g_slide_duration').parent().removeClass('disabled');
} else {
$('#g_autoplay').prop('checked',false);
$('#g_slide_duration').parent().addClass('disabled');
}
$('#g_slide_duration').val(gallery_slide_duration);
break;
case 'video':
$('#frm_v_edit').show();
$('#poi_content').parent().parent().show();
$('#poi_title').parent().show();
$('#poi_description').parent().show();
$('#id_poi_autoopen').parent().show();
$('#auto_close').parent().show();
$('#view_type').parent().show();
$('#box_pos').parent().show();
$('#box_max_width').parent().show();
$('#box_maximize').parent().show();
$('#box_background').parent().parent().show();
$('#box_color').parent().parent().show();
$('#content_label').html(window.backend_labels.content_video);
$('#poi_content').val(window.pois[index].content);
$('#poi_title').val(window.pois[index].title);
$('#poi_description').val(window.pois[index].description);
break;
case 'audio':
$('#frm_a_edit').show();
$('#poi_content').parent().parent().show();
$('#id_poi_autoopen').parent().show();
$('#id_poi_autoopen').parent().parent().removeClass('col-md-3').addClass('col-md-12');
$('#poi_song_bg_volume').parent().show();
$('#content_label').html(window.backend_labels.content_audio);
$('#poi_content').val(window.pois[index].content);
$('#poi_song_bg_volume').val(parseFloat(window.pois[index].song_bg_volume));
$('#poi_title').val('');
$('#poi_description').val('');
break;
case 'video360':
$('#frm_v_edit').show();
$('#poi_content').parent().parent().show();
$('#poi_title').parent().show();
$('#poi_description').parent().show();
$('#id_poi_autoopen').parent().show();
$('#auto_close').parent().show();
$('#view_type').parent().show();
$('#box_pos').parent().show();
$('#box_max_width').parent().show();
$('#box_maximize').parent().show();
$('#box_background').parent().parent().show();
$('#box_color').parent().parent().show();
$('#content_label').html(window.backend_labels.content_video360);
$('#poi_content').val(window.pois[index].content);
$('#poi_title').val(window.pois[index].title);
$('#poi_description').val(window.pois[index].description);
break;
case 'link':
$('#poi_content').parent().parent().show();
$('#poi_title').parent().show();
$('#poi_description').parent().show();
$('#id_poi_autoopen').parent().show();
$('#auto_close').parent().show();
$('#view_type').parent().show();
$('#box_pos').parent().show();
$('#box_max_width').parent().show();
$('#box_maximize').parent().show();
$('#box_background').parent().parent().show();
$('#box_color').parent().parent().show();
$('#content_label').html(window.backend_labels.content_link);
$('#poi_content').val(window.pois[index].content);
$('#poi_title').val(window.pois[index].title);
$('#poi_description').val(window.pois[index].description);
break;
case 'pdf':
$('#frm_pdf_edit').show();
$('#poi_content').parent().parent().show();
$('#poi_title').parent().show();
$('#poi_description').parent().show();
$('#id_poi_autoopen').parent().show();
$('#auto_close').parent().show();
$('#view_type').parent().show();
$('#box_pos').parent().show();
$('#box_max_width').parent().show();
$('#box_maximize').parent().show();
$('#box_background').parent().parent().show();
$('#box_color').parent().parent().show();
$('#content_label').html(window.backend_labels.content_pdf);
$('#poi_content').val(window.pois[index].content);
$('#poi_title').val(window.pois[index].title);
$('#poi_description').val(window.pois[index].description);
break;
case 'pointclouds':
$('#frm_pc_edit').show();
$('#poi_content').parent().parent().show();
$('#poi_title').parent().show();
$('#poi_description').parent().show();
$('#id_poi_autoopen').parent().show();
$('#auto_close').parent().show();
$('#view_type').parent().show();
$('#box_pos').parent().show();
$('#box_max_width').parent().show();
$('#box_maximize').parent().show();
$('#box_background').parent().parent().show();
$('#box_color').parent().parent().show();
window.pois[index].view_type = 0;
$('#view_type').prop('disabled',true);
$('#btn_preview_poi_content i').removeClass('fa-eye').addClass('fa-cog');
$('#content_label').html(window.backend_labels.content_pointclouds);
$('#poi_content').val(window.pois[index].content);
$('#poi_title').val(window.pois[index].title);
$('#poi_description').val(window.pois[index].description);
break;
case 'link_ext':
$('#poi_content').parent().parent().show();
$('#poi_target').parent().show();
$('#id_poi_autoopen').parent().parent().removeClass('col-md-3').addClass('col-md-12');
$('#content_label').html(window.backend_labels.content_link_ext);
$('#poi_content').val(window.pois[index].content);
$("#poi_target option").prop("selected", false);
$("#poi_target option[id='"+window.pois[index].target+"']").prop("selected", true);
$('#poi_title').val('');
$('#poi_description').val('');
break;
case 'html':
$('#poi_title').parent().show();
$('#poi_description').parent().show();
$('#id_poi_autoopen').parent().show();
$('#view_type').parent().show();
$('#box_pos').parent().show();
$('#box_max_width').parent().show();
$('#box_maximize').parent().show();
$('#box_background').parent().parent().show();
$('#box_color').parent().parent().show();
$('#auto_close').parent().show();
$('#poi_content_html').parent().parent().show();
$('#poi_content_html').parent().find('.ql-toolbar').remove();
$('#poi_content_html').html(window.pois[index].content).promise().done(function () {
var toolbarOptions = [
['bold', 'italic', 'underline', 'strike'],
[{ 'size': ['12px','14px','16px','18px','24px','28px','32px','40px','48px','56px','64px','72px'] }],
[{ 'list': 'ordered'}, { 'list': 'bullet' }],
[{ 'color': [] }, { 'background': [] }],
[{ 'align': [] }],
['clean']
];
window.html_editor = new Quill('#poi_content_html', {
modules: {
toolbar: toolbarOptions
},
theme: 'snow'
});
});
$('#poi_title').val(window.pois[index].title);
$('#poi_description').val(window.pois[index].description);
break;
case 'html_sc':
$('#poi_title').parent().show();
$('#poi_description').parent().show();
$('#poi_content_html_sc').parent().show();
$('#id_poi_autoopen').parent().show();
$('#auto_close').parent().show();
$('#view_type').parent().show();
$('#box_pos').parent().show();
$('#box_max_width').parent().show();
$('#box_maximize').parent().show();
$('#box_background').parent().parent().show();
$('#box_color').parent().parent().show();
try {
window.poi_content_html_sc.destroy();
} catch (e) {}
window.poi_content_html_sc = ace.edit('poi_content_html_sc');
window.poi_content_html_sc.session.setMode("ace/mode/html");
window.poi_content_html_sc.setOption('enableLiveAutocompletion',true);
window.poi_content_html_sc.setShowPrintMargin(false);
if($('body').hasClass('dark_mode')) {
window.poi_content_html_sc.setTheme("ace/theme/one_dark");
}
window.poi_content_html_sc.setValue(window.pois[index].content,-1);
$('#poi_title').val(window.pois[index].title);
$('#poi_description').val(window.pois[index].description);
break;
case 'download':
$('#frm_d_edit').show();
$('#poi_content').parent().parent().show();
$('#id_poi_autoopen').parent().parent().removeClass('col-md-3').addClass('col-md-12');
$('#content_label').html(window.backend_labels.content_file);
$('#poi_content').val(window.pois[index].content);
$('#poi_title').val('');
$('#poi_description').val('');
break;
case 'form':
var content = window.pois[index].content;
try {
content = JSON.parse(content);
$('#form_title').val(content[0].title);
$('#form_button').val(content[0].button);
$('#form_response').val(content[0].response);
$('#form_description').val(content[0].description);
if(content[0].background==null) content[0].background = 'rgba(255,255,255,1.0)';
$("#form_background").spectrum("set", content[0].background);
if(content[0].color==null) content[0].color = '#000000';
$('#form_color').spectrum("set", content[0].color);
if(content[0].background_button==null) content[0].background_button = '#000000';
$('#form_background_button').spectrum("set", content[0].background_button);
if(content[0].color_button==null) content[0].color_button = '#ffffff';
$('#form_color_button').spectrum("set", content[0].color_button);
if(content[0].privacy_policy==null) content[0].privacy_policy = false;
if(content[0]['privacy_policy']) {
$('#form_privacy_policy').prop('checked',true);
} else {
$('#form_privacy_policy').prop('checked',false);
}
if(content[0]['send_email']) {
$('#form_send_email').prop('checked',true);
} else {
$('#form_send_email').prop('checked',false);
}
$('#form_email').val(content[0].email);
for(var i=1;i<=10;i++) {
if(content[i]['enabled']) {
$('#form_field_'+i).prop('checked',true);
} else {
$('#form_field_'+i).prop('checked',false);
}
if(content[i]['required']) {
$('#form_field_required_'+i).prop('checked',true);
} else {
$('#form_field_required_'+i).prop('checked',false);
}
$('#form_field_type_'+i+' option[id=\''+content[i]['type']+'\']').prop('selected',true);
$('#form_field_label_'+i).val(content[i]['label']);
}
} catch (e) {
$("#form_background").spectrum("set", 'rgba(255,255,255,1.0)');
$('#form_color').spectrum("set", '#000000');
$('#form_background_button').spectrum("set", '#000000');
$('#form_color_button').spectrum("set", '#ffffff');
}
$('#poi_title').val('');
$('#poi_description').val('');
$('#id_poi_autoopen').parent().show();
$('#auto_close').parent().show();
$('#view_type').parent().show();
$('#box_pos').parent().show();
$('#box_max_width').parent().show();
$('#box_maximize').parent().show();
$('#box_background').parent().parent().show();
$('#box_color').parent().parent().show();
$('#div_form_edit').show();
break;
case 'google_maps':
$('#poi_title').parent().show();
$('#poi_description').parent().show();
$('#id_poi_autoopen').parent().show();
$('#auto_close').parent().show();
$('#view_type').parent().show();
$('#box_pos').parent().show();
$('#box_max_width').parent().show();
$('#box_maximize').parent().show();
$('#box_background').parent().parent().show();
$('#box_color').parent().parent().show();
$('#poi_gm_map').parent().show();
$('#poi_gm_street').parent().show();
if((window.pois[index].content == null) || (window.pois[index].content.length === 0)) {
var gm_map = '';
var gm_street = '';
} else {
var gm_map = window.pois[index].content.split('|')[0];
var gm_street = window.pois[index].content.split('|')[1];
}
$('#poi_gm_map').val(gm_map);
$('#poi_gm_street').val(gm_street);
$('#poi_content').val('');
$('#poi_title').val(window.pois[index].title);
$('#poi_description').val(window.pois[index].description);
break;
case 'object360':
$('#poi_title').parent().show();
$('#poi_description').parent().show();
$('#btn_poi_object360').parent().show();
$('#id_poi_autoopen').parent().show();
$('#auto_close').parent().show();
$('#view_type').parent().show();
$('#box_pos').parent().show();
$('#box_max_width').parent().show();
$('#box_maximize').parent().show();
$('#box_background').parent().parent().show();
$('#box_color').parent().parent().show();
$('#poi_title').val(window.pois[index].title);
$('#poi_description').val(window.pois[index].description);
break;
case 'object3d':
$('#frm_g_edit').show();
$('#poi_content').parent().parent().show();
$('#poi_title').parent().show();
$('#poi_description').parent().show();
$('#id_poi_autoopen').parent().show();
$('#auto_close').parent().show();
$('#view_type').parent().show();
$('#box_pos').parent().show();
$('#box_max_width').parent().show();
$('#box_maximize').parent().show();
$('#box_background').parent().parent().show();
$('#box_color').parent().parent().show();
$("#params_ar option").prop("selected", false);
$("#params_interaction option").prop("selected", false);
if(window.pois[index].params!='') {
var params_array = window.pois[index].params.split(",");
var placement = params_array[0];
if(params_array[1]!==undefined) {
var interaction = params_array[1];
} else {
var interaction = 1;
}
if(params_array[2]!==undefined) {
var exposure = params_array[2];
} else {
var exposure = 1;
}
if(params_array[3]!==undefined) {
var environment = params_array[3];
} else {
var environment = 'legacy';
}
} else {
var placement = 0;
var interaction = 1;
var exposure = 1;
var environment = 'legacy';
}
$("#params_ar option[id='"+placement+"']").prop("selected", true);
$("#params_interaction option[id='"+interaction+"']").prop("selected", true);
$("#params_environment option[id='"+environment+"']").prop("selected", true);
$('#params_exposure').val(exposure);
$('#params_exposure_label').html(exposure);
$('#content_label').html(window.backend_labels.content_object3d);
$('#poi_content').val(window.pois[index].content);
$('#poi_title').val(window.pois[index].title);
$('#poi_description').val(window.pois[index].description);
var selectElement = document.getElementById("params_animation");
var options = selectElement.getElementsByTagName("option");
selectElement.classList.add('disabled');
for (var i = options.length - 1; i >= 0; i--) {
if (options[i].id !== "none") {
selectElement.remove(i);
}
}
if(window.pois[index].content!='') {
window.modelViewer_o.src='img/test.jpg';
setTimeout(function() {
window.modelViewer_o.src=((window.s3_enabled) ? window.s3_url+'viewer/' : '../viewer/')+window.pois[index].content;
},500);
}
break;
case 'lottie':
$('#frm_j_edit').show();
$('#poi_content').parent().parent().show();
$('#poi_title').parent().show();
$('#poi_description').parent().show();
$('#id_poi_autoopen').parent().show();
$('#auto_close').parent().show();
$('#view_type').parent().show();
$('#box_pos').parent().show();
$('#box_max_width').parent().show();
$('#box_maximize').parent().show();
$('#box_background').parent().parent().show();
$('#box_color').parent().parent().show();
$('#content_label').html(window.backend_labels.content_lottie);
$('#poi_content').val(window.pois[index].content);
$('#poi_title').val(window.pois[index].title);
$('#poi_description').val(window.pois[index].description);
break;
case 'product':
$('#poi_content_product_div').show();
$('#poi_title').parent().show();
$('#poi_description').parent().show();
$('#id_poi_autoopen').parent().show();
$('#auto_close').parent().show();
$('#view_type').parent().show();
$('#box_pos').parent().show();
$('#box_max_width').parent().show();
$('#box_maximize').parent().show();
$('#box_background').parent().parent().show();
$('#box_color').parent().parent().show();
$('#poi_title').val(window.pois[index].title);
$('#poi_description').val(window.pois[index].description);
if(window.pois[index].content!='') {
$("#poi_content_product option").prop("selected", false);
$("#poi_content_product option[id='"+window.pois[index].content+"']").prop("selected", true);
$('#poi_content_product').selectpicker('refresh');
$('#poi_content_product').selectpicker('val', window.pois[index].content);
} else {
$('#poi_content_product').selectpicker('refresh');
}
break;
case 'switch_pano':
$('#content_label').html(window.backend_labels.content_panorama_image);
$('#switch_panorama_id').val(window.pois[index].content);
$('#poi_content').val(window.pois[index].switch_panorama_image);
$('#poi_content').prop('readonly',true);
$('#poi_content').parent().parent().show();
$('#frm_sp_edit').show();
$('#switch_panorama_default').parent().show();
if(window.pois[index].content!='' && parseInt(window.pois[index].content)==0) {
$('#switch_panorama_default').prop('checked',true);
$('#frm_sp_edit').addClass('disabled');
$('#poi_content').parent().parent().addClass('disabled');
} else {
$('#switch_panorama_default').prop('checked',false);
$('#frm_sp_edit').removeClass('disabled');
$('#poi_content').parent().parent().removeClass('disabled');
}
break;
case 'callout':
var json_callout = window.pois[index].params;
var array_callout = JSON.parse(json_callout);
$('#callout_title').val(array_callout.title);
$('#callout_description').val(array_callout.description);
$('#callout_title_font_size').val(array_callout.title_font_size);
$('#callout_title_margin').val(array_callout.title_margin);
$("#callout_title_font_color").spectrum("set", array_callout.title_font_color);
$("#callout_title_bg_color").spectrum("set", array_callout.title_bg_color);
$('#callout_description_font_size').val(array_callout.description_font_size);
$("#callout_description_font_color").spectrum("set", array_callout.description_font_color);
$("#callout_dir option").prop("selected", false);
$("#callout_dir option[id='"+array_callout.dir+"']").prop("selected", true);
$('#callout_rotate').val(array_callout.rotate);
$('#callout_content_width').val(array_callout.content_width);
$('#callout_content_height').val(array_callout.content_height);
$("#callout_main_color").spectrum("set", array_callout.main_color);
$('#callout_line_size').val(array_callout.line_size);
$("#callout_open option").prop("selected", false);
$("#callout_open option[id='"+array_callout.open+"']").prop("selected", true);
$("#callout_content_bg_color").spectrum("set", array_callout.content_bg_color);
setTimeout(function() {
open_callout(poi_id_edit);
},250);
$('.callout_settings').show();
break;
}
var poi_css = $('#poi_css_class').parent().parent().detach();
if(window.pois[index].type=='callout') {
$('.callout_settings .row').append(poi_css);
} else {
$('.poi_block_div').prepend(poi_css);
}
if(window.id_poi_autoopen==id) {
$('#id_poi_autoopen').prop('checked',true);
} else {
$('#id_poi_autoopen').prop('checked',false);
}
$("#view_type option").prop("selected", false);
$("#view_type option[id='"+window.pois[index].view_type+"']").prop("selected", true);
$("#box_pos option").prop("selected", false);
$("#box_pos option[id='"+window.pois[index].box_pos+"']").prop("selected", true);
if(parseInt(window.pois[index].box_maximize)==1) {
$('#box_maximize').prop('checked',true);
} else {
$('#box_maximize').prop('checked',false);
}
$('#box_max_width').val(window.pois[index].box_max_width);
$('#box_background').val(window.pois[index].box_background);
$('#box_color').val(window.pois[index].box_color);
if(window.pois[index].view_type==0) {
$('#box_pos').prop('disabled',true);
$('#box_max_width').prop('disabled',true);
$('#box_maximize').prop('disabled',true);
} else {
$('#box_pos').prop('disabled',false);
$('#box_max_width').prop('disabled',false);
$('#box_maximize').prop('disabled',false);
}
$('#auto_close').val(window.pois[index].auto_close);
$('#frm_edit_e').hide();
$('#frm_v_edit_e').hide();
$('#frm_td_edit_e').hide();
$('#frm_v_edit_e_s').hide();
$('#poi_embed_content').parent().hide();
$('#poi_embed_content_html').parent().parent().hide();
$('#poi_embed_content_html_sc').parent().hide();
$('#poi_style').parent().parent().parent().show();
$('#poi_color').parent().parent().parent().show();
$('#poi_border_px').parent().parent().hide();
$('#poi_background').parent().parent().parent().show();
$('#poi_label').parent().parent().show();
$('#poi_icon_type').parent().parent().show();
$('#btn_poi_embed_gallery').parent().parent().parent().hide();
$('#poi_embed_content_html').parent().find('.ql-toolbar').remove();
$('#btn_background_removal').parent().parent().hide();
$('#embed_video_autoplay').parent().parent().removeClass('col-md-3').addClass('col-md-4');
$('#embed_video_muted').parent().parent().removeClass('col-md-3').addClass('col-md-4');
$('#embed_video_loop').parent().parent().removeClass('col-md-3').addClass('col-md-4');
$('#poi_color').parent().parent().removeClass('disabled');
$('#poi_background').parent().parent().removeClass('disabled');
$('#poi_icon_type').parent().parent().removeClass('disabled');
$('#poi_color_label').html(window.backend_labels.color);
if(window.pois[index].type=='callout') {
window.embed_type_current = 'callout';
} else {
window.embed_type_current = window.pois[index].embed_type;
}
switch(window.pois[index].embed_type) {
case 'image':
select_poi_style_edit('embed_image');
$('#frm_edit_e').show();
$('#poi_embed_content').parent().show();
$('#embed_content_label').html(window.backend_labels.content_image_embed);
$('#poi_embed_content').val(window.pois[index].embed_content);
$('#poi_style').parent().parent().parent().hide();
$('#poi_color').parent().parent().parent().hide();
$('#poi_background').parent().parent().parent().hide();
$('#poi_label').parent().parent().hide();
$('#poi_icon_type').parent().parent().hide();
break;
case 'gallery':
select_poi_style_edit('embed_gallery');
$('#embed_gallery_autoplay').val(parseInt(window.pois[index].embed_gallery_autoplay));
$('#btn_poi_embed_gallery').parent().parent().parent().show();
$('#poi_style').parent().parent().parent().hide();
$('#poi_color').parent().parent().parent().hide();
$('#poi_background').parent().parent().parent().hide();
$('#poi_label').parent().parent().hide();
$('#poi_icon_type').parent().parent().hide();
var poi_embed_gallery_order = 'sort';
if(window.pois[index].embed_params!='') {
try {
var json = JSON.parse(window.pois[index].embed_params);
poi_embed_gallery_order = json.order;
} catch (e) {}
}
if(poi_embed_gallery_order=='random') {
$('#poi_embed_gallery_random').prop('checked',true);
} else {
$('#poi_embed_gallery_random').prop('checked',false);
}
break;
case 'video':
select_poi_style_edit('embed_video');
if(parseInt(window.pois[index].embed_video_autoplay)==1) {
$('#embed_video_autoplay').prop('checked',true);
} else {
$('#embed_video_autoplay').prop('checked',false);
}
if(parseInt(window.pois[index].embed_video_muted)==1) {
$('#embed_video_muted').prop('checked',true);
} else {
$('#embed_video_muted').prop('checked',false);
}
if(parseInt(window.pois[index].embed_video_loop)==1) {
$('#embed_video_loop').prop('checked',true);
} else {
$('#embed_video_loop').prop('checked',false);
}
$('#label_mp4').show();
$('#label_webm_mov').hide();
window.video_ext_sel = 'mp4';
$('.ml_btn').attr('onclick',"open_modal_media_library('videos','poi_embed_content');return false;");
$('#frm_v_edit_e').attr('action','ajax/upload_content_video.php?e=mp4');
$('#frm_v_edit_e').show();
$('#frm_v_edit_e_s').show();
$('#poi_embed_content').parent().show();
$('#embed_content_label').html(window.backend_labels.content_video_embed);
$('#poi_embed_content').val(window.pois[index].embed_content);
$('#poi_style').parent().parent().parent().hide();
$('#poi_color').parent().parent().parent().hide();
$('#poi_background').parent().parent().parent().hide();
$('#poi_label').parent().parent().hide();
$('#poi_icon_type').parent().parent().hide();
break;
case 'object3d':
select_poi_style_edit('embed_object3d');
$('#frm_td_edit_e').show();
$('#poi_embed_content').parent().show();
$('#embed_content_label').html(window.backend_labels.content_object3d_emb);
$('#poi_embed_content').val(window.pois[index].embed_content);
$('#poi_style').parent().parent().parent().hide();
$('#poi_color').parent().parent().parent().hide();
$('#poi_background').parent().parent().parent().hide();
$('#poi_label').parent().parent().hide();
$('#poi_icon_type').parent().parent().hide();
$("#object3d_interaction option").prop('selected',false);
$("#object3d_environment option").prop('selected',false);
if(window.pois[index].embed_params!='') {
var tmp = window.pois[index].embed_params.split(",");
if(tmp[1]!==undefined) {
var interaction = parseInt(tmp[1]);
} else {
var interaction = 0;
}
if(tmp[2]!==undefined) {
var exposure = parseFloat(tmp[2]);
} else {
var exposure = 1;
}
if(tmp[3]!==undefined) {
var environment = tmp[3];
} else {
var environment = 'legacy';
}
if(tmp[4]!==undefined) {
var shadow_intensity = parseFloat(tmp[4]);
} else {
var shadow_intensity = 1;
}
if(tmp[5]!==undefined) {
var shadow_softness = parseFloat(tmp[5]);
} else {
var shadow_softness = 0.5;
}
$("#object3d_interaction option[id='"+interaction+"']").prop('selected',true);
$("#object3d_environment option[id='"+environment+"']").prop('selected',true);
$('#object3d_exposure').val(exposure);
$('#object3d_exposure_label').html(exposure);
$('#object3d_shadow_intensity').val(shadow_intensity);
$('#object3d_shadow_intensity_label').html(shadow_intensity);
$('#object3d_shadow_softness').val(shadow_softness);
$('#object3d_shadow_softness_label').html(shadow_softness);
} else {
$("#object3d_interaction option[id='0']").prop('selected',true);
$("#object3d_environment option[id='legacy']").prop('selected',true);
$('#object3d_exposure').val(1);
$('#object3d_exposure_label').html(1);
$('#object3d_shadow_intensity').val(1);
$('#object3d_shadow_intensity_label').html(1);
$('#object3d_shadow_softness').val(0.5);
$('#object3d_shadow_softness_label').html(0.5);
}
var selectElement = document.getElementById("object3d_animation");
var options = selectElement.getElementsByTagName("option");
selectElement.classList.add('disabled');
for (var i = options.length - 1; i >= 0; i--) {
if (options[i].id !== "none") {
selectElement.remove(i);
}
}
if(window.pois[index].embed_content!='') {
window.modelViewer_o_e.src='img/test.jpg';
setTimeout(function() {
window.modelViewer_o_e.src=((window.s3_enabled) ? window.s3_url+'viewer/' : '../viewer/')+window.pois[index].embed_content;
},500);
}
break;
case 'video_chroma':
select_poi_style_edit('embed_video_chroma');
if(parseInt(window.pois[index].embed_video_autoplay)==1) {
$('#embed_video_autoplay').prop('checked',true);
} else {
$('#embed_video_autoplay').prop('checked',false);
}
if(parseInt(window.pois[index].embed_video_muted)==1) {
$('#embed_video_muted').prop('checked',true);
} else {
$('#embed_video_muted').prop('checked',false);
}
if(parseInt(window.pois[index].embed_video_loop)==1) {
$('#embed_video_loop').prop('checked',true);
} else {
$('#embed_video_loop').prop('checked',false);
}
$('#label_mp4').show();
$('#label_webm_mov').hide();
window.video_ext_sel = 'mp4';
$('.ml_btn').attr('onclick',"open_modal_media_library('videos','poi_embed_content');return false;");
$('#frm_v_edit_e').attr('action','ajax/upload_content_video.php?e=mp4');
$('#frm_v_edit_e').show();
$('#frm_v_edit_e_s').show();
$('#poi_embed_content').parent().show();
$('#embed_content_label').html(window.backend_labels.content_video_embed_chroma);
$('#poi_embed_content').val(window.pois[index].embed_content);
var params = window.pois[index].params;
if(params=='') { params = '0,255,0,0'; }
var array_params = params.split(",");
var bg_color = 'rgb('+array_params[0]+','+array_params[1]+','+array_params[2]+')';
$('#chroma_color').val(bg_color);
$("#chroma_color").spectrum("set", bg_color);
$('#chroma_tolerance').val(array_params[3]);
$('#poi_style').parent().parent().parent().hide();
$('#poi_color').parent().parent().parent().hide();
$('#poi_background').parent().parent().parent().hide();
$('#poi_label').parent().parent().hide();
$('#poi_icon_type').parent().parent().hide();
$('#btn_background_removal').parent().parent().show();
$('#embed_video_autoplay').parent().parent().removeClass('col-md-4').addClass('col-md-3');
$('#embed_video_muted').parent().parent().removeClass('col-md-4').addClass('col-md-3');
$('#embed_video_loop').parent().parent().removeClass('col-md-4').addClass('col-md-3');
break;
case 'video_transparent':
select_poi_style_edit('embed_video_transparent');
if(parseInt(window.pois[index].embed_video_autoplay)==1) {
$('#embed_video_autoplay').prop('checked',true);
} else {
$('#embed_video_autoplay').prop('checked',false);
}
if(parseInt(window.pois[index].embed_video_muted)==1) {
$('#embed_video_muted').prop('checked',true);
} else {
$('#embed_video_muted').prop('checked',false);
}
if(parseInt(window.pois[index].embed_video_loop)==1) {
$('#embed_video_loop').prop('checked',true);
} else {
$('#embed_video_loop').prop('checked',false);
}
$('#label_mp4').hide();
$('#label_webm_mov').show();
window.video_ext_sel = 'webm_mov';
$('.ml_btn').attr('onclick',"open_modal_media_library('videos_transparent','poi_embed_content');return false;");
$('#frm_v_edit_e').attr('action','ajax/upload_content_video.php?e=webm_mov');
$('#frm_v_edit_e').show();
$('#frm_v_edit_e_s').show();
$('#poi_embed_content').parent().show();
$('#embed_content_label').html(window.backend_labels.content_video_embed_transparent);
$('#poi_embed_content').val(window.pois[index].embed_content);
$('#poi_style').parent().parent().parent().hide();
$('#poi_color').parent().parent().parent().hide();
$('#poi_background').parent().parent().parent().hide();
$('#poi_label').parent().parent().hide();
$('#poi_icon_type').parent().parent().hide();
break;
case 'selection':
select_poi_style_edit('embed_selection');
$('#frm_edit_e').hide();
$('#poi_embed_content').parent().hide();
$('#poi_style').parent().parent().parent().hide();
$('#poi_color').parent().parent().parent().show();
$('#poi_background').parent().parent().parent().show();
$('#poi_border_px').parent().parent().show();
$('#poi_border_px').val(window.pois[index].embed_content.replace('border-width:','').replace('px;',''));
$('#poi_label').parent().parent().hide();
$('#poi_icon_type').parent().parent().hide();
$('#poi_color_label').html(window.backend_labels.border_color);
break;
case 'link':
select_poi_style_edit('embed_link');
$('#frm_edit_e').hide();
$('#poi_embed_content').parent().show();
$('#embed_content_label').html(window.backend_labels.content_link_emb);
$('#poi_embed_content').val(window.pois[index].embed_content);
$('#poi_style').parent().parent().parent().hide();
$('#poi_color').parent().parent().parent().hide();
$('#poi_background').parent().parent().parent().hide();
$('#poi_label').parent().parent().hide();
$('#poi_icon_type').parent().parent().hide();
break;
case 'html':
select_poi_style_edit('embed_html');
$('#frm_edit_e').hide();
$('#poi_embed_content').parent().hide();
$('#poi_embed_content_html_sc').parent().show();
try {
window.poi_embed_content_html_sc.destroy();
} catch (e) {}
window.poi_embed_content_html_sc = ace.edit('poi_embed_content_html_sc');
window.poi_embed_content_html_sc.session.setMode("ace/mode/html");
window.poi_embed_content_html_sc.setOption('enableLiveAutocompletion',true);
window.poi_embed_content_html_sc.setShowPrintMargin(false);
if($('body').hasClass('dark_mode')) {
window.poi_embed_content_html_sc.setTheme("ace/theme/one_dark");
}
window.poi_embed_content_html_sc.setValue(window.pois[index].embed_content,-1);
window.poi_embed_content_html_sc.getSession().on('change', function() {
window.pois[index].embed_content = window.poi_embed_content_html_sc.getValue();
render_poi(id,index);
});
$('#poi_style').parent().parent().parent().hide();
$('#poi_color').parent().parent().parent().hide();
$('#poi_background').parent().parent().parent().hide();
$('#poi_label').parent().parent().hide();
$('#poi_icon_type').parent().parent().hide();
break;
case 'text':
select_poi_style_edit('embed_text');
$('#frm_edit_e').hide();
$('#poi_embed_content').parent().hide();
$('#poi_embed_content_html').parent().parent().show();
$('#poi_embed_content_html').html(window.pois[index].embed_content.split(' border-width:')[0]).promise().done(function () {
var toolbarOptions = [
['bold', 'italic', 'underline', 'strike'],
[{ 'size': ['12px','14px','16px','18px','24px','28px','32px','40px','48px','56px','64px','72px'] }],
[{ 'list': 'ordered'}, { 'list': 'bullet' }],
[{ 'color': [] }, { 'background': [] }],
[{ 'align': [] }],
['clean']
];
window.poi_embed_content_html_editor = new Quill('#poi_embed_content_html', {
modules: {
toolbar: toolbarOptions
},
theme: 'snow'
});
window.poi_embed_content_html_editor.on('text-change', function(delta, oldDelta, source) {
window.pois[index].embed_content = window.poi_embed_content_html_editor.root.innerHTML+' border-width:'+$('#poi_border_px').val()+'px;';;
render_poi(id,index);
});
});
$('#poi_style').parent().parent().parent().hide();
$('#poi_color').parent().parent().parent().show();
$('#poi_background').parent().parent().parent().show();
$('#poi_border_px').parent().parent().show();
var border_width = window.pois[index].embed_content.split(' border-width:')[1].replace('px;','');
if(border_width=='') border_width=0;
$('#poi_border_px').val(border_width);
$('#poi_label').parent().parent().hide();
$('#poi_icon_type').parent().parent().hide();
$('#poi_color_label').html(window.backend_labels.border_color);
break;
default:
if(window.pois[index].type=='callout') {
$('#poi_style').parent().parent().parent().hide();
$('#poi_color').parent().parent().parent().hide();
$('#poi_background').parent().parent().parent().hide();
$('#poi_icon_type').parent().parent().hide();
$('#poi_label').parent().parent().hide();
select_poi_style_edit('callout');
} else {
select_poi_style_edit('icon');
}
break;
}
$('#poi_color').val(window.pois[index].color);
$("#poi_color").spectrum("set", window.pois[index].color);
$('#poi_background').val(window.pois[index].background);
$("#poi_background").spectrum("set", window.pois[index].background);
$('#poi_css_class').val(window.pois[index].css_class);
$('#poi_icon_preview')[0].className = window.pois[index].icon;
$('#poi_icon').val(window.pois[index].icon);
$('#poi_label').val(window.pois[index].label);
$("#poi_style option").prop("selected", false);
$("#poi_style option[id='"+window.pois[index].style+"']").prop("selected", true);
$("#poi_icon_type option").prop("selected", false);
$("#poi_icon_type option[id='"+window.pois[index].icon_type+"']").prop("selected", true);
$("#poi_animation option").prop("selected", false);
$("#poi_animation option[id='"+window.pois[index].animation+"']").prop("selected", true);
$("#poi_sound option").prop("selected", false);
$("#poi_sound option[id='"+window.pois[index].sound+"']").prop("selected", true);
if((window.pois[index].style==0) || (window.pois[index].style==1)) {
$("#poi_label").parent().addClass('disabled');
$('.input_lang[data-target-id="poi_label"]').parent().addClass('disabled');
}
$("#tooltip_type").prop("selected", false);
$("#tooltip_type option[id='"+window.pois[index].tooltip_type+"']").prop("selected", true);
$("#tooltip_visibility").prop("selected", false);
$("#tooltip_visibility option[id='"+window.pois[index].tooltip_visibility+"']").prop("selected", true);
$("#tooltip_background").spectrum("set", window.pois[index].tooltip_background);
$("#tooltip_color").spectrum("set", window.pois[index].tooltip_color);
$("#box_background").spectrum("set", window.pois[index].box_background);
$("#box_color").spectrum("set", window.pois[index].box_color);
$('#tooltip_text_html').css('background-color',window.pois[index].tooltip_background);
$('#tooltip_text_html').css('color',window.pois[index].tooltip_color);
$('#tooltip_text_html').parent().find('.ql-toolbar').remove();
$('#tooltip_text_html').html(window.pois[index].tooltip_text).promise().done(function () {
var toolbarOptions = [
[{ 'header': [1, 2, 3, 4, 5, 6, false] }],
['bold', 'italic', 'underline', 'strike'],
[{ 'list': 'ordered'}, { 'list': 'bullet' }],
[{ 'align': [] }],
['clean']
];
window.tooltip_text_editor = new Quill('#tooltip_text_html', {
modules: {
toolbar: toolbarOptions
},
theme: 'snow'
});
});
if($('.lang_input_switcher').length) {
var url = new URL(location.href);
var url_params = new URLSearchParams(url.search);
var page_section = url_params.get('p');
$('.lang_input_switcher').each(function() {
var elem_o = $(this).attr('data-elem');
var lang_o = $(this).attr('data-default-lang');
var lang_l = sessionStorage.getItem('lang_'+window.id_virtualtour+'_'+page_section);
if(lang_l===null) {
lang_l=lang_o;
}
switch_input_language(lang_l,lang_o,elem_o);
});
setTimeout(function() {
render_poi(id,index);
},250);
}
$('.input_lang[data-target-id="tooltip_text_html"]').html('');
$('.input_lang[data-target-id="tooltip_text_html"]').each(function() {
var lang = $(this).attr('data-lang');
var id_l = $(this).attr('id');
$('#'+id_l).css('background-color',window.pois[index].tooltip_background);
$('#'+id_l).css('color',window.pois[index].tooltip_color);
$('#'+id_l).parent().find('.ql-toolbar').remove();
var html = '';
jQuery.each(window.pois[index].array_lang, function(index_l,item_lang) {
if(item_lang.language==lang) {
html = item_lang.tooltip_text;
}
});
$('#'+id_l).html(html).promise().done(function () {
var toolbarOptions = [
[{ 'header': [1, 2, 3, 4, 5, 6, false] }],
['bold', 'italic', 'underline', 'strike'],
[{ 'list': 'ordered'}, { 'list': 'bullet' }],
[{ 'align': [] }],
['clean']
];
window.tooltip_text_editor_lang[lang] = new Quill('#'+id_l, {
modules: {
toolbar: toolbarOptions
},
theme: 'snow'
});
});
});
$('.input_lang[data-target-id="poi_label"]').each(function() {
var lang = $(this).attr('data-lang');
jQuery.each(window.pois[index].array_lang, function(index_l,item_lang) {
if(item_lang.language==lang) {
$('.input_lang[data-target-id="poi_label"][data-lang="'+lang+'"]').val(item_lang.label);
}
});
});
$('.input_lang[data-target-id="poi_title"]').each(function() {
var lang = $(this).attr('data-lang');
jQuery.each(window.pois[index].array_lang, function(index_l,item_lang) {
if(item_lang.language==lang) {
$('.input_lang[data-target-id="poi_title"][data-lang="'+lang+'"]').val(item_lang.title);
}
});
});
$('.input_lang[data-target-id="poi_description"]').each(function() {
var lang = $(this).attr('data-lang');
jQuery.each(window.pois[index].array_lang, function(index_l,item_lang) {
if(item_lang.language==lang) {
$('.input_lang[data-target-id="poi_description"][data-lang="'+lang+'"]').val(item_lang.description);
}
});
});
$('.input_lang[data-target-id="poi_embed_content"]').val('');
switch(window.pois[index].embed_type) {
case 'image':
case 'video':
case 'video_transparent':
case 'link':
case 'object3d':
$('.input_lang[data-target-id="poi_embed_content"]').each(function() {
var lang = $(this).attr('data-lang');
var id_l = $(this).attr('id');
var html = '';
jQuery.each(window.pois[index].array_lang, function(index_l,item_lang) {
if(item_lang.language==lang) {
html = item_lang.embed_content;
}
});
$('#'+id_l).val(html);
});
break;
case 'video_chroma':
$('.input_lang[data-target-id="poi_embed_content"]').each(function() {
var lang = $(this).attr('data-lang');
var id_l = $(this).attr('id');
var html = '';
var params = '0,255,0,0';
jQuery.each(window.pois[index].array_lang, function(index_l,item_lang) {
if(item_lang.language==lang) {
html = item_lang.embed_content;
params = item_lang.params;
}
});
$('#'+id_l).val(html);
var array_params = params.split(",");
var bg_color = 'rgb('+array_params[0]+','+array_params[1]+','+array_params[2]+')';
$('#chroma_color_'+lang).val(bg_color);
$("#chroma_color_"+lang).spectrum("set", bg_color);
$('#chroma_tolerance_'+lang).val(array_params[3]);
});
break;
case 'text':
$('.input_lang[data-target-id="poi_embed_content_html"]').html('');
$('.input_lang[data-target-id="poi_embed_content_html"]').each(function() {
var lang = $(this).attr('data-lang');
var id_l = $(this).attr('id');
$('#'+id_l).parent().find('.ql-toolbar').remove();
var html = '';
jQuery.each(window.pois[index].array_lang, function(index_l,item_lang) {
if(item_lang.language==lang) {
if(item_lang.embed_content!='') {
html = item_lang.embed_content.split(' border-width:')[0];
}
}
});
$('#'+id_l).html(html).promise().done(function () {
var toolbarOptions = [
['bold', 'italic', 'underline', 'strike'],
[{ 'size': ['12px','14px','16px','18px','24px','28px','32px','40px','48px','56px','64px','72px'] }],
[{ 'list': 'ordered'}, { 'list': 'bullet' }],
[{ 'color': [] }, { 'background': [] }],
[{ 'align': [] }],
['clean']
];
window.poi_embed_content_html_editor_lang[lang] = new Quill('#'+id_l, {
modules: {
toolbar: toolbarOptions
},
theme: 'snow'
});
window.poi_embed_content_html_editor_lang[lang].on('text-change', function(delta, oldDelta, source) {
render_poi(id,index);
});
});
});
break;
case 'html':
$('.input_lang[data-target-id="poi_embed_content_html_sc"]').html('');
$('.input_lang[data-target-id="poi_embed_content_html_sc"]').each(function() {
var lang = $(this).attr('data-lang');
var id_l = $(this).attr('id');
var html = '';
jQuery.each(window.pois[index].array_lang, function (index_l, item_lang) {
if (item_lang.language == lang) {
if (item_lang.embed_content != '' && item_lang.embed_content != null) {
html = item_lang.embed_content;
}
}
});
try {
window.poi_embed_content_html_sc_lang[lang].destroy();
} catch (e) {}
window.poi_embed_content_html_sc_lang[lang] = ace.edit(id_l);
window.poi_embed_content_html_sc_lang[lang].session.setMode("ace/mode/html");
window.poi_embed_content_html_sc_lang[lang].setOption('enableLiveAutocompletion',true);
window.poi_embed_content_html_sc_lang[lang].setShowPrintMargin(false);
if($('body').hasClass('dark_mode')) {
window.poi_embed_content_html_sc_lang[lang].setTheme("ace/theme/one_dark");
}
if(html!='') window.poi_embed_content_html_sc_lang[lang].setValue(html,-1);
window.poi_embed_content_html_sc_lang[lang].getSession().on('change', function() {
render_poi(id,index);
});
});
break;
}
$('.input_lang[data-target-id="poi_content"]').val('');
switch(window.pois[index].type) {
case 'image':
case 'pdf':
case 'download':
case 'video':
case 'video360':
case 'lottie':
case 'audio':
case 'object3d':
case 'pointclouds':
case 'link':
case 'link_ext':
$('.input_lang[data-target-id="poi_content"]').each(function() {
var lang = $(this).attr('data-lang');
var id_l = $(this).attr('id');
var html = '';
jQuery.each(window.pois[index].array_lang, function(index_l,item_lang) {
if(item_lang.language==lang) {
html = item_lang.content;
}
});
$('#'+id_l).val(html);
});
break;
case 'google_maps':
$('.input_lang[data-target-id="poi_gm_map"]').each(function() {
var lang = $(this).attr('data-lang');
var content_l = '';
jQuery.each(window.pois[index].array_lang, function(index_l,item_lang) {
if(item_lang.language==lang) {
content_l = item_lang.content;
}
});
if((content_l == null) || (content_l.length === 0)) {
var gm_map = '';
var gm_street = '';
} else {
var gm_map = content_l.split('|')[0];
var gm_street = content_l.split('|')[1];
}
$('#poi_gm_map_'+lang).val(gm_map);
$('#poi_gm_street_'+lang).val(gm_street);
});
break;
case 'html':
$('.input_lang[data-target-id="poi_content_html"]').html('');
$('.input_lang[data-target-id="poi_content_html"]').each(function() {
var lang = $(this).attr('data-lang');
var id_l = $(this).attr('id');
$('#'+id_l).parent().find('.ql-toolbar').remove();
var html = '';
jQuery.each(window.pois[index].array_lang, function(index_l,item_lang) {
if(item_lang.language==lang) {
html = item_lang.content;
}
});
$('#'+id_l).html(html).promise().done(function () {
var toolbarOptions = [
['bold', 'italic', 'underline', 'strike'],
[{ 'size': ['12px','14px','16px','18px','24px','28px','32px','40px','48px','56px','64px','72px'] }],
[{ 'list': 'ordered'}, { 'list': 'bullet' }],
[{ 'color': [] }, { 'background': [] }],
[{ 'align': [] }],
['clean']
];
window.html_editor_lang[lang] = new Quill('#'+id_l, {
modules: {
toolbar: toolbarOptions
},
theme: 'snow'
});
});
});
break;
case 'html_sc':
$('.input_lang[data-target-id="poi_content_html_sc"]').html('');
$('.input_lang[data-target-id="poi_content_html_sc"]').each(function() {
var lang = $(this).attr('data-lang');
var id_l = $(this).attr('id');
var html = '';
jQuery.each(window.pois[index].array_lang, function(index_l,item_lang) {
if(item_lang.language==lang) {
html = item_lang.content;
}
});
try {
window.poi_content_html_sc_lang[lang].destroy();
} catch (e) {}
window.poi_content_html_sc_lang[lang] = ace.edit(id_l);
window.poi_content_html_sc_lang[lang].session.setMode("ace/mode/html");
window.poi_content_html_sc_lang[lang].setOption('enableLiveAutocompletion',true);
window.poi_content_html_sc_lang[lang].setShowPrintMargin(false);
if($('body').hasClass('dark_mode')) {
window.poi_content_html_sc_lang[lang].setTheme("ace/theme/one_dark");
}
if(html!=null) window.poi_content_html_sc_lang[lang].setValue(html,-1);
});
break;
case 'form':
$('.input_lang[data-target-id="form_title"]').val('');
$('.input_lang[data-target-id="form_button"]').val('');
$('.input_lang[data-target-id="form_response"]').val('');
$('.input_lang[data-target-id="form_description"]').val('');
$('.input_lang[data-target-id="form_title"]').each(function() {
var lang = $(this).attr('data-lang');
jQuery.each(window.pois[index].array_lang, function(index_l,item_lang) {
if(item_lang.language==lang) {
var form_content = JSON.parse(item_lang.content);
if(form_content.length>0) {
$('.input_lang[data-target-id="form_title"][data-lang="'+lang+'"]').val(form_content[0]['title']);
$('.input_lang[data-target-id="form_button"][data-lang="'+lang+'"]').val(form_content[0]['button']);
$('.input_lang[data-target-id="form_response"][data-lang="'+lang+'"]').val(form_content[0]['response']);
$('.input_lang[data-target-id="form_description"][data-lang="'+lang+'"]').val(form_content[0]['description']);
for(var i=1;i<=10;i++) {
$('.input_lang[data-target-id="form_field_label_'+i+'"][data-lang="'+lang+'"]').val(form_content[i]['label']);
}
}
}
});
});
break;
case 'callout':
$('.input_lang[data-target-id="callout_title"]').val('');
$('.input_lang[data-target-id="callout_description"]').val('');
$('.input_lang[data-target-id="callout_title"]').each(function() {
var lang = $(this).attr('data-lang');
jQuery.each(window.pois[index].array_lang, function(index_l,item_lang) {
if(item_lang.language==lang) {
if(item_lang.params!=null && item_lang.params!='') {
var array_callout_lang = JSON.parse(item_lang.params);
$('.input_lang[data-target-id="callout_title"][data-lang="'+lang+'"]').val(array_callout_lang.title);
$('.input_lang[data-target-id="callout_description"][data-lang="'+lang+'"]').val(array_callout_lang.description);
}
}
});
});
break;
}
change_tooltip_type_p();
$('#poi_library_icon').val(window.pois[index].id_icon_library);
if(window.pois[index].style==1) {
var image = window.pois[index].img_icon_library;
var id_vt_library = window.pois[index].id_vt_library;
if(window.s3_enabled==1 && id_vt_library!='') {
var image_url = window.s3_url+'viewer/icons/'+image+'?s3=1';
} else {
var image_url = '../viewer/icons/'+image;
}
var ext = image.split('.').pop().toLowerCase();
if(ext=='json') {
var html_image = '<div id="lottie_preview_'+window.poi_id_edit+'" style="height:30px;width:30px;vertical-align:middle"></div>';
$('#poi_library_icon_preview_l').html(html_image).promise().done(function () {
$('#poi_library_icon_preview_l').css('display','inline-block');
bodymovin.loadAnimation({
container: document.getElementById('lottie_preview_'+window.poi_id_edit),
renderer: 'svg',
loop: true,
autoplay: true,
path: image_url,
rendererSettings: {
progressiveLoad: true,
}
});
});
$('#poi_library_icon_preview').hide();
} else {
$('#poi_library_icon_preview').attr('src',image_url);
$('#poi_library_icon_preview').show();
$('#poi_library_icon_preview_l').hide();
}
}
var schedule = window.pois[index].schedule;
if(schedule!='' && schedule!=null) {
schedule = JSON.parse(schedule);
$('#enable_schedule').prop('checked',true);
$('#date_from').val(schedule.from_date);
$('#date_to').val(schedule.to_date);
$('#hour_from').val(schedule.from_hour);
$('#hour_to').val(schedule.to_hour);
var days = schedule.days;
var days_array = days.split(",");
if(days_array[0]==1) $("#days_1").prop('checked',true); else $("#days_1").prop('checked',false);
if(days_array[1]==1) $("#days_2").prop('checked',true); else $("#days_2").prop('checked',false);
if(days_array[2]==1) $("#days_3").prop('checked',true); else $("#days_3").prop('checked',false);
if(days_array[3]==1) $("#days_4").prop('checked',true); else $("#days_4").prop('checked',false);
if(days_array[4]==1) $("#days_5").prop('checked',true); else $("#days_5").prop('checked',false);
if(days_array[5]==1) $("#days_6").prop('checked',true); else $("#days_6").prop('checked',false);
if(days_array[6]==1) $("#days_7").prop('checked',true); else $("#days_7").prop('checked',false);
$('#confirm_schedule input').prop("disabled",false);
} else {
$('#enable_schedule').prop('checked',false);
$('#date_from').val('');
$('#date_to').val('');
$('#hour_from').val('');
$('#hour_to').val('');
$("#days_1").prop('checked',false);
$("#days_2").prop('checked',false);
$("#days_3").prop('checked',false);
$("#days_4").prop('checked',false);
$("#days_5").prop('checked',false);
$("#days_6").prop('checked',false);
$("#days_7").prop('checked',false);
$('#confirm_schedule input').prop("disabled",true);
}
$('#enable_schedule').prop("disabled",false);
if(window.pois[index].embed_type=='' && window.pois[index].type!='callout') {
change_poi_style();
}
$('#edit-tab a[href="#pills-tooltip"]').removeClass('disabled');
if(window.pois[index].type=='' || window.pois[index].type=='callout') {
$('#edit-tab a[href="#pills-edit"]').addClass('disabled');
if(window.pois[index].type=='callout') {
$('#edit-tab a[href="#pills-tooltip"]').addClass('disabled');
}
} else {
$('#edit-tab a[href="#pills-edit"]').removeClass('disabled');
}
if(id_poi_add!=null && window.pois[index].embed_type!='') {
$('#edit-tab a[href="#pills-style"]').tab('show');
show_poi_apply_style(true);
} else {
if(window.pois[index].type=='' || window.pois[index].type=='callout') {
$('#edit-tab a[href="#pills-style"]').tab('show');
show_poi_apply_style(true);
} else {
$('#edit-tab a[href="#pills-edit"]').tab('show');
}
}
$('#confirm_edit').show();
maximize_box_edit();
window.is_editing = true;
}
window.change_exposure_m = function() {
var exposure = $('#object3d_exposure').val();
$('#object3d_'+window.poi_id_edit).attr('exposure',exposure);
$('#object3d_exposure_label').html(exposure);
}
window.change_shadow_intensity = function() {
var shadow_intensity = $('#object3d_shadow_intensity').val();
$('#object3d_'+window.poi_id_edit).attr('shadow-intensity',shadow_intensity);
$('#object3d_shadow_intensity_label').html(shadow_intensity);
}
window.change_shadow_softness = function() {
var shadow_softness = $('#object3d_shadow_softness').val();
$('#object3d_'+window.poi_id_edit).attr('shadow-softness',shadow_softness);
$('#object3d_shadow_softness_label').html(shadow_softness);
}
window.change_exposure = function() {
var exposure = $('#params_exposure').val();
$('#params_exposure_label').html(exposure);
}
window.change_animation = function() {
var animation = $('#object3d_animation option:selected').attr('id');
var model = document.querySelector('#object3d_'+window.poi_id_edit);
if(animation=='none') {
model.setAttribute('autoplay','false');
model.setAttribute('animation-name','');
try {
model.pause();
} catch (e) {}
} else {
model.setAttribute('autoplay','true');
model.setAttribute('animation-name',animation);
try {
model.play();
} catch (e) {}
}
}
window.change_object3d_zoom = function() {
var zoom = $('#object3d_zoom').val();
if(zoom==80) {
render_poi(window.poi_id_edit,window.poi_index_edit);
$('#object3d_zoom_value').html('auto');
} else {
var zoom_deg = 180 - zoom;
$('#object3d_'+window.poi_id_edit).attr('min-field-of-view',zoom_deg+'deg');
$('#object3d_'+window.poi_id_edit).attr('max-field-of-view',zoom_deg+'deg');
$('#object3d_zoom_value').html(zoom-80);
}
}
window.change_environment = function() {
var environment = $('#object3d_environment option:selected').attr('id');
if(environment=='panorama') {
if(window.s3_enabled==1) {
environment = window.s3_url+'viewer/panoramas/lowres/'+window.panorama_image+'?s3=1';
} else {
environment = '../viewer/panoramas/lowres/'+window.panorama_image;
}
}
$('#object3d_'+window.poi_id_edit).attr('environment-image',environment);
}
window.open_background_removal = function() {
$('#confirm_edit').hide();
$('#confirm_background_removal').show();
$('.poi_embed_'+poi_id_edit).css('pointer-events','none');
setTimeout(function() {
window.video_chroma.play();
},500);
}
window.close_background_removal = function() {
$('#confirm_edit').show();
$('#confirm_background_removal').hide();
var params = window.pois_initial[poi_index_edit].params;
if(params=='') { params = '0,255,0,0'; }
var array_params = params.split(",");
var bg_color = 'rgb('+array_params[0]+','+array_params[1]+','+array_params[2]+')';
$('#chroma_color').val(bg_color);
$("#chroma_color").spectrum("set", bg_color);
$('#chroma_tolerance').val(array_params[3]);
remove_background_video_chroma(video_chroma,ctx_chroma_tmp,ctx_chroma,width_chroma,height_chroma,params,true);
window.video_chroma.pause();
window.video_chroma.currentTime=0;
$('.poi_embed_'+poi_id_edit).css('pointer-events','initial');
}
window.play_chroma_video = function() {
window.video_chroma.currentTime=0;
window.video_chroma.play();
}
window.confirm_background_removal = function() {
$('#confirm_edit').show();
$('#confirm_background_removal').hide();
$('.poi_embed_'+poi_id_edit).css('pointer-events','initial');
window.video_chroma.pause();
window.video_chroma.currentTime=0;
}
window.change_poi_border_px = function () {
switch(window.pois[window.poi_index_edit].embed_type) {
case 'selection':
window.pois[window.poi_index_edit].embed_content = 'border-width:'+$('#poi_border_px').val()+'px;';
break;
case 'text':
window.pois[window.poi_index_edit].embed_content = window.poi_embed_content_html_editor.root.innerHTML+' border-width:'+$('#poi_border_px').val()+'px;';
break;
}
render_poi(window.poi_id_edit,window.poi_index_edit);
}
window.change_poi_icon_type = function () {
window.pois[window.poi_index_edit].icon_type = $('#poi_icon_type option:selected').attr('id');
render_poi(window.poi_id_edit,window.poi_index_edit);
}
window.change_marker_icon_type = function () {
window.markers[window.marker_index_edit].icon_type = $('#marker_icon_type option:selected').attr('id');
render_marker(window.marker_id_edit,window.marker_index_edit);
}
window.change_marker_border_px = function () {
switch(window.markers[window.marker_index_edit].embed_type) {
case 'selection':
window.markers[window.marker_index_edit].embed_content = 'border-width:'+$('#marker_border_px').val()+'px;';
break;
}
render_marker(window.marker_id_edit,window.marker_index_edit);
}
window.edit_poi_gallery = function() {
$("#modal_images_gallery .modal-body").html('').promise().done(function () {
$("#modal_images_gallery .modal-body").load('poi_gallery.php?id_poi='+window.poi_id_edit);
$('#modal_images_gallery').modal('show');
});
}
window.edit_poi_embed_gallery = function() {
$("#modal_images_gallery .modal-body").html('').promise().done(function () {
$("#modal_images_gallery .modal-body").load('poi_embed_gallery.php?id_poi='+window.poi_id_edit);
$('#modal_images_gallery').modal('show');
});
}
window.edit_poi_object360 = function() {
$("#modal_images_gallery .modal-body").html('').promise().done(function () {
$("#modal_images_gallery .modal-body").load('poi_object360.php?id_poi='+window.poi_id_edit);
$('#modal_images_gallery').modal('show');
});
}
window.change_exclude_apply_all = function(p) {
var k = ($('#exclude_from_apply_all').is(':checked')) ? 1 : 0;
switch(p) {
case 'marker':
var id = window.marker_id_edit;
window.markers[marker_index_edit].exclude_from_apply_all=k;
break;
case 'poi':
var id = window.poi_id_edit;
window.pois[poi_index_edit].exclude_from_apply_all=k;
break;
}
$.ajax({
url: "ajax/change_exclude_apply_all.php",
type: "POST",
data: {
p: p,
id: id,
k: k
},
async: false,
success: function (rsp) {}
});
}
window.edit_m = function(id,index) {
window.marker_index_edit = index;
window.marker_id_edit = id;
$('.btn_apply_style_all').hide();
$('#exclude_from_apply_all').parent().parent().hide();
$('#action_box').hide();
$('.rooms_slider').addClass('disabled');
$('.rooms_slider').hide();
$(window).trigger('resize');
$('#btn_add_marker').addClass('disabled');
$('#btn_list_hs').addClass('disabled');
close_list_hs();
$('#btn_switch_to_poi').addClass('disabled');
$('#btn_preview_modal').addClass('disabled');
$('#btn_toggle_fullscreen').addClass('disabled');
$('.rooms_view_sel').addClass('disabled');
$('.icon_visible_view').addClass('disabled');
$('#confirm_edit .btn_confirm').addClass("disabled");
$('#confirm_edit .btn_confirm').attr('onclick','confirm_edit_marker('+id+','+index+')');
$('#confirm_edit .btn_close').attr('onclick','exit_edit_marker('+id+','+index+')');
if(parseInt(window.markers[index].exclude_from_apply_all)==1) {
$('#exclude_from_apply_all').prop('checked',true);
} else {
$('#exclude_from_apply_all').prop('checked',false);
}
var yaw = parseFloat(window.markers[index].yaw);
var pitch = parseFloat(window.markers[index].pitch)+20;
if(window.markers[index].embed_type=='') {
window.viewer.lookAt(pitch,yaw,100,200);
}
var yaw_m = window.markers[index].yaw_room_target;
var pitch_m = window.markers[index].pitch_room_target;
if((yaw_m=='') && (pitch_m=='')) {
$('#override_pos_edit').prop('checked',false);
} else {
$('#override_pos_edit').prop('checked',true);
}
get_option_rooms_target('room_target',window.id_room_sel,window.markers[index].id_room_target,id,index);
$('#marker_color').parent().parent().removeClass('disabled');
$('#marker_icon_type').parent().parent().removeClass('disabled');
$('#marker_background').parent().parent().removeClass('disabled');
window.embed_type_current = window.markers[index].embed_type;
switch(window.markers[index].embed_type) {
case 'selection':
select_marker_style_edit('embed_selection');
$('#marker_style').parent().parent().parent().hide();
$('#marker_color').parent().parent().parent().show();
$('#marker_background').parent().parent().parent().show();
$('#marker_border_px').parent().parent().show();
$('#marker_border_px').val(window.markers[index].embed_content.replace('border-width:','').replace('px;',''));
$('#marker_icon_type').parent().parent().hide();
$('#marker_color_label').html(window.backend_labels.border_color);
break;
default:
select_marker_style_edit('icon');
$('#marker_style').parent().parent().parent().show();
$('#marker_color').parent().parent().parent().show();
$('#marker_background').parent().parent().parent().show();
$('#marker_border_px').parent().parent().hide();
$('#marker_border_px').val('');
$('#marker_icon_type').parent().parent().show();
$('#marker_color_label').html(window.backend_labels.color);
break;
}
$("#lookat").prop("selected", false);
$("#lookat option[id='"+window.markers[index].lookat+"']").prop("selected", true);
$('#marker_color').val(window.markers[index].color);
$("#marker_color").spectrum("set", window.markers[index].color);
$('#marker_background').val(window.markers[index].background);
$("#marker_background").spectrum("set", window.markers[index].background);
$('#marker_css_class').val(window.markers[index].css_class);
$('#marker_icon_preview')[0].className = window.markers[index].icon;
$('#marker_icon').val(window.markers[index].icon);
$("#marker_style").prop("selected", false);
$("#marker_style option[id='"+window.markers[index].show_room+"']").prop("selected", true);
$("#marker_icon_type option").prop("selected", false);
$("#marker_icon_type option[id='"+window.markers[index].icon_type+"']").prop("selected", true);
$("#marker_sound option").prop("selected", false);
$("#marker_sound option[id='"+window.markers[index].sound+"']").prop("selected", true);
$("#marker_animation option").prop("selected", false);
$("#marker_animation option[id='"+window.markers[index].animation+"']").prop("selected", true);
$("#tooltip_type").prop("selected", false);
$("#tooltip_type option[id='"+window.markers[index].tooltip_type+"']").prop("selected", true);
$("#tooltip_visibility").prop("selected", false);
$("#tooltip_visibility option[id='"+window.markers[index].tooltip_visibility+"']").prop("selected", true);
$("#tooltip_background").spectrum("set", window.markers[index].tooltip_background);
$("#tooltip_color").spectrum("set", window.markers[index].tooltip_color);
$('#tooltip_text_html').css('background-color',window.markers[index].tooltip_background);
$('#tooltip_text_html').css('color',window.markers[index].tooltip_color);
$('#tooltip_text_html').parent().find('.ql-toolbar').remove();
$('#tooltip_text_html').html(window.markers[index].tooltip_text).promise().done(function () {
var toolbarOptions = [
[{ 'header': [1, 2, 3, 4, 5, 6, false] }],
['bold', 'italic', 'underline', 'strike'],
[{ 'list': 'ordered'}, { 'list': 'bullet' }],
[{ 'align': [] }],
['clean']
];
window.tooltip_text_editor = new Quill('#tooltip_text_html', {
modules: {
toolbar: toolbarOptions
},
theme: 'snow'
});
});
if($('.lang_input_switcher').length) {
$('.lang_input_switcher').each(function() {
var elem_o = $(this).attr('data-elem');
var lang_o = $(this).attr('data-default-lang');
switch_input_language(lang_o,lang_o,elem_o);
});
}
$('.input_lang[data-target-id="tooltip_text_html"]').html('');
$('.input_lang[data-target-id="tooltip_text_html"]').each(function() {
var lang = $(this).attr('data-lang');
var id_l = $(this).attr('id');
$('#'+id_l).css('background-color',window.markers[index].tooltip_background);
$('#'+id_l).css('color',window.markers[index].tooltip_color);
$('#'+id_l).parent().find('.ql-toolbar').remove();
var html = '';
jQuery.each(window.markers[index].array_lang, function(index_l,item_lang) {
if(item_lang.language==lang) {
html = item_lang.tooltip_text;
}
});
$('#'+id_l).html(html).promise().done(function () {
var toolbarOptions = [
[{ 'header': [1, 2, 3, 4, 5, 6, false] }],
['bold', 'italic', 'underline', 'strike'],
[{ 'list': 'ordered'}, { 'list': 'bullet' }],
[{ 'align': [] }],
['clean']
];
window.tooltip_text_editor_lang[lang] = new Quill('#'+id_l, {
modules: {
toolbar: toolbarOptions
},
theme: 'snow'
});
});
});
change_tooltip_type_m();
$('#marker_library_icon').val(window.markers[index].id_icon_library);
if(window.markers[index].show_room==4) {
var image = window.markers[index].img_icon_library;
var id_vt_library = window.markers[index].id_vt_library;
if(window.s3_enabled==1 && id_vt_library!='') {
var image_url = window.s3_url+'viewer/icons/'+image+'?s3=1';
} else {
var image_url = '../viewer/icons/'+image;
}
var ext = image.split('.').pop().toLowerCase();
if(ext=='json') {
var html_image = '<div id="lottie_preview_'+window.marker_id_edit+'" style="height:30px;width:30px;vertical-align:middle"></div>';
$('#marker_library_icon_preview_l').html(html_image).promise().done(function () {
$('#marker_library_icon_preview_l').css('display','inline-block');
bodymovin.loadAnimation({
container: document.getElementById('lottie_preview_'+window.marker_id_edit),
renderer: 'svg',
loop: true,
autoplay: true,
path: image_url,
rendererSettings: {
progressiveLoad: true,
}
});
});
$('#marker_library_icon_preview').hide();
} else {
$('#marker_library_icon_preview').attr('src',image_url);
$('#marker_library_icon_preview').show();
$('#marker_library_icon_preview_l').hide();
}
}
if(window.markers[index].embed_type=='') {
change_marker_style();
}
$('#edit-tab a[href="#pills-edit"]').tab('show');
$('#confirm_edit').show();
window.is_editing = true;
}
window.edit_ms = function(id,index) {
window.measure_index_edit = index;
window.measure_id_edit = id;
$('#action_box').hide();
$('.rooms_slider').addClass('disabled');
$('.rooms_slider').hide();
setTimeout(function () {
window.viewer.resize();
},100);
window.count_adjust_measures = 0;
window.interval_adjust_measures = setInterval(function () {
if(window.count_adjust_measures>=110) {
clearInterval(window.interval_adjust_measures);
window.count_adjust_measures = 0;
}
adjust_measurements(false);
window.count_adjust_measures++;
},1);
$('#btn_add_measure').addClass('disabled');
$('#btn_list_hs').addClass('disabled');
close_list_hs();
$('#btn_preview_modal').addClass('disabled');
$('#btn_toggle_fullscreen').addClass('disabled');
$('.rooms_view_sel').addClass('disabled');
$('.icon_visible_view').addClass('disabled');
$('#confirm_edit .btn_confirm').removeClass("disabled");
$('svg.leader-line path').css('pointer-events','none');
$('svg.leader-line text').css('pointer-events','none');
$('svg.leader-line use').css('pointer-events','none');
$('#confirm_edit .btn_confirm').attr('onclick','confirm_edit_measure('+id+','+index+')');
$('#confirm_edit .btn_close').attr('onclick','exit_edit_measure('+id+','+index+')');
$(window).trigger('resize');
var params = JSON.parse(window.measures[index].params);
$('#measure_label').val(window.measures[index].label);
$('#measure_line_size').val(params.line_size);
$("#measure_line_color").spectrum("set", params.color_line);
$("#measure_color_text").spectrum("set", params.color_text);
$("#measure_color_outline_text").spectrum("set", params.color_outline_text);
$('#measure_size_text').val(params.size_text);
$('#measure_start_plug option[id='+params.start_plug+']').prop('selected', true);
$('#measure_end_plug option[id='+params.end_plug+']').prop('selected', true);
$("#measure_start_plug_color").spectrum("set", params.start_plug_color);
$("#measure_end_plug_color").spectrum("set", params.end_plug_color);
$('#measure_start_plug_size').val(params.start_plug_size);
$('#measure_end_plug_size').val(params.end_plug_size);
$('#measure_line_size_value').html(params.line_size);
$('#measure_size_text_value').html(params.size_text);
$('#measure_start_plug_size_value').html(params.start_plug_size);
$('#measure_end_plug_size_value').html(params.end_plug_size);
$('#confirm_edit').show();
window.is_editing = true;
}
window.goto_m = function(id,index) {
var id_room_target = window.markers[index].id_room_target;
window.is_editing = false;
$('#action_box').hide();
var id = $('.room_'+id_room_target).attr('data-id');
var image = $('.room_'+id_room_target).attr('data-image');
select_room_marker(id,image,null);
}
window.move_m = function(id,index) {
window.marker_index_edit = index;
window.marker_id_edit = id;
$('.center_helper').hide();
$('#action_box').hide();
$('.rooms_slider').addClass('disabled');
$('.rooms_slider').hide();
$('#visibile_in_views option').prop('selected',false);
if(window.markers[index].visible_multiview_ids!='') {
jQuery.each(window.markers[index].visible_multiview_ids.split(","), function(index_mi, mi) {
$('#visibile_in_views option[id='+mi+']').prop('selected',true);
});
}
$('#visibile_in_views').selectpicker('refresh');
$(window).trigger('resize');
$('#btn_add_marker').addClass('disabled');
$('#btn_list_hs').addClass('disabled');
close_list_hs();
$('#btn_switch_to_poi').addClass('disabled');
$('#btn_preview_modal').addClass('disabled');
$('#btn_toggle_fullscreen').addClass('disabled');
$('.rooms_view_sel').addClass('disabled');
$('.icon_visible_view').addClass('disabled');
$('#btn_draw_polygon_m').parent().hide();
window.is_editing = true;
if(window.markers[index].scale==1) {
$('#scale').prop('checked',true);
} else {
$('#scale').prop('checked',false);
}
if(window.markers[index].embed_type!='') {
window.is_editing = true;
$('#msg_drag_marker').hide();
$('#msg_drag_embed').show();
$('#marker_embded_move_'+id).css({'opacity':1,'pointer-events':'initial'});
$('#marker_embded_helper_'+id+'_1').css({'opacity':1,'pointer-events':'initial'});
$('#marker_embded_helper_'+id+'_2').css({'opacity':1,'pointer-events':'initial'});
$('#marker_embded_helper_'+id+'_3').css({'opacity':1,'pointer-events':'initial'});
$('#marker_embded_helper_'+id+'_4').css({'opacity':1,'pointer-events':'initial'});
$('#rotateX').parent().hide();
$('#size_scale').parent().hide();
$('#scale').parent().hide();
switch(window.markers[index].embed_type) {
case 'selection':
$('#btn_draw_polygon_m').parent().show();
break;
}
} else {
$('#msg_drag_marker').show();
$('#msg_drag_embed').hide();
$('#rotateX').parent().show();
$('#size_scale').parent().show();
$('#scale').parent().show();
$('#rotateX').val(window.markers[index].rotateX);
$('#rotateZ').val(window.markers[index].rotateZ);
$('#size_scale').val(window.markers[index].size_scale);
$('#perspective_values').html('('+window.markers[index].rotateX+','+window.markers[index].rotateZ+')');
$('#size_values').html('('+window.markers[index].size_scale+')');
$('#rotateX').attr('oninput','adjust_perspective_m('+id+','+index+')');
$('#rotateZ').attr('oninput','adjust_perspective_m('+id+','+index+')');
$('#size_scale').attr('oninput','adjust_size_scale_m('+id+','+index+')');
window.viewer.removeHotSpot(id.toString());
window.viewer.addHotSpot({
"id": window.markers[index].id,
"type": 'marker',
"transform3d": false,
"pitch": parseFloat(window.markers[index].pitch),
"yaw": parseFloat(window.markers[index].yaw),
"draggable": true,
"rotateX": parseInt(window.markers[index].rotateX),
"rotateZ": parseInt(window.markers[index].rotateZ),
"size_scale": parseFloat(window.markers[index].size_scale),
"cssClass": "custom-hotspot",
"createTooltipFunc": hotspot_m,
"createTooltipArgs": window.markers[index],
"dragHandlerFunc": drag_marker_move,
"dragHandlerArgs": index
});
setTimeout(function () {
window.viewer.resize();
$('.hotspot_'+id).addClass('grabbable');
},100);
}
$('#confirm_move .btn_confirm').attr('onclick','confirm_move_marker('+id+','+index+')');
$('#confirm_move .btn_close').attr('onclick','exit_move_marker('+id+','+index+')');
$('#btn_change_zindex_left').attr('onclick','change_zindex_m_down('+id+','+index+')');
$('#btn_change_zindex_right').attr('onclick','change_zindex_m_up('+id+','+index+')');
$('#zIndex_value').html(window.markers[index].zIndex);
show_marker_apply_move(true);
$('#confirm_move').show();
}
window.move_ms = function(id,index,id_measure_add) {
window.is_editing = true;
window.measure_index_edit = index;
window.measure_id_edit = id;
$('.center_helper').hide();
$('#action_box').hide();
$('.rooms_slider').addClass('disabled');
$('.rooms_slider').hide();
$('#visibile_in_views option').prop('selected',false);
if(window.measures[index].visible_multiview_ids!='') {
jQuery.each(window.measures[index].visible_multiview_ids.split(","), function(index_mi, mi) {
$('#visibile_in_views option[id='+mi+']').prop('selected',true);
});
}
$('#visibile_in_views').selectpicker('refresh');
$(window).trigger('resize');
$('#btn_add_measure').addClass('disabled');
$('#btn_list_hs').addClass('disabled');
close_list_hs();
$('#btn_preview_modal').addClass('disabled');
$('#btn_toggle_fullscreen').addClass('disabled');
$('.rooms_view_sel').addClass('disabled');
$('.icon_visible_view').addClass('disabled');
$('#measure_'+id+'_start').css({'opacity':1,'pointer-events':'initial'});
$('#measure_'+id+'_end').css({'opacity':1,'pointer-events':'initial'});
setTimeout(function () {
window.viewer.resize();
},100);
window.count_adjust_measures = 0;
window.interval_adjust_measures = setInterval(function () {
if(window.count_adjust_measures>=110) {
clearInterval(window.interval_adjust_measures);
window.count_adjust_measures = 0;
}
adjust_measurements(false);
window.count_adjust_measures++;
},1);
$('#measure_'+id+'_start').addClass('grabbable');
$('#measure_'+id+'_end').addClass('grabbable');
$('svg.leader-line path').css('pointer-events','none');
$('svg.leader-line text').css('pointer-events','none');
$('svg.leader-line use').css('pointer-events','none');
$('#confirm_move .btn_confirm').attr('onclick','confirm_move_measure('+id+','+index+','+id_measure_add+')');
$('#confirm_move .btn_close').attr('onclick','exit_move_measure('+id+','+index+')');
$('#confirm_move').show();
}
window.move_p = function(id,index,index_poi_add) {
window.poi_index_edit = index;
window.poi_id_edit = id;
$('.center_helper').hide();
$('#action_box').hide();
$('.rooms_slider').addClass('disabled');
$('.rooms_slider').hide();
$(window).trigger('resize');
$('#btn_add_poi').addClass('disabled');
$('#btn_list_hs').addClass('disabled');
close_list_hs();
$('#btn_switch_to_marker').addClass('disabled');
$('#btn_preview_modal').addClass('disabled');
$('#btn_toggle_fullscreen').addClass('disabled');
$('.rooms_view_sel').addClass('disabled');
$('.icon_visible_view').addClass('disabled');
show_poi_confirm(true);
window.is_editing = true;
$('#transform3d').parent().hide();
$('#btn_draw_polygon').parent().hide();
$('#object3d_move_params').hide();
if(window.pois[index].transform3d==1) {
$('#transform3d').prop('checked',true);
} else {
$('#transform3d').prop('checked',false);
}
if(window.pois[index].scale==1) {
$('#scale').prop('checked',true);
} else {
$('#scale').prop('checked',false);
}
$('#visibile_in_views option').prop('selected',false);
if(window.pois[index].visible_multiview_ids!='') {
jQuery.each(window.pois[index].visible_multiview_ids.split(","), function(index_mi, mi) {
$('#visibile_in_views option[id='+mi+']').prop('selected',true);
});
}
$('#visibile_in_views').selectpicker('refresh');
switch(window.pois[index].embed_type) {
case 'image':
case 'video':
if(index_poi_add==null) {
$('#transform3d').parent().show();
}
break;
case 'selection':
$('#btn_draw_polygon').parent().show();
break;
case 'object3d':
if(window.pois[index].embed_content!='') {
var tmp = window.pois[index].embed_params.split(",");
if(tmp[6]!==undefined) {
var zoom_deg = parseInt(tmp[6])-80;
var zoom_deg_val = parseInt(tmp[6]);
} else {
var zoom_deg = 'auto';
var zoom_deg_val = 80;
}
$('#object3d_zoom').val(zoom_deg_val);
$('#object3d_zoom_value').html(zoom_deg);
$('#object3d_move_params').show();
}
break;
}
if(window.pois[index].embed_type!='' && window.pois[index].transform3d==1) {
$('#msg_drag_poi').hide();
$('#msg_drag_embed').show();
window.viewer.removeHotSpot("p"+id.toString());
window.viewer.removeHotSpot("p"+id.toString()+"_1");
window.viewer.removeHotSpot("p"+id.toString()+"_2");
window.viewer.removeHotSpot("p"+id.toString()+"_3");
window.viewer.removeHotSpot("p"+id.toString()+"_4");
window.viewer.removeHotSpot("p"+id.toString()+"_move");
window.viewer.addHotSpot({
"id": "p"+window.pois[index].id,
"type": window.pois[index].embed_type,
"object": "poi_embed",
"transform3d": parseInt(window.pois[index].transform3d),
"tooltip_type": "",
"pitch": parseFloat(window.pois[index].pitch),
"yaw": parseFloat(window.pois[index].yaw),
"rotateX": 0,
"rotateZ": 0,
"size_scale": 1,
"cssClass": "hotspot-embed",
"createTooltipFunc": hotspot_embed,
"createTooltipArgs": window.pois[index],
"clickHandlerFunc": click_edit_poi,
"clickHandlerArgs": window.pois[index].id
});
var poi_embed_helpers = window.pois[index].embed_coords.split("|");
poi_embed_helpers[0] = poi_embed_helpers[0].split(",");
poi_embed_helpers[1] = poi_embed_helpers[1].split(",");
poi_embed_helpers[2] = poi_embed_helpers[2].split(",");
poi_embed_helpers[3] = poi_embed_helpers[3].split(",");
jQuery.each(poi_embed_helpers, function(index_h, poi_embed_helper) {
window.viewer.addHotSpot({
"id": "p"+window.pois[index].id+"_"+(index_h+1),
"type": 'pointer',
"object": "poi_embed_helper",
"transform3d": false,
"pitch": parseFloat(poi_embed_helper[0]),
"yaw": parseFloat(poi_embed_helper[1]),
"size_scale": 1,
"rotateX": 0,
"rotateZ": 0,
"draggable": true,
"cssClass": "hotspot-helper",
"createTooltipFunc": hotspot_embed_helper,
"createTooltipArgs": [window.pois[index].id,(index_h+1)],
"dragHandlerFunc": drag_embed_helper,
"dragHandlerArgs": [window.pois[index],index_h]
});
});
window.viewer.addHotSpot({
"id": "p"+window.pois[index].id+"_move",
"type": 'pointer',
"object": "poi_embed_helper",
"transform3d": false,
"pitch": parseFloat(window.pois[index].pitch),
"yaw": parseFloat(window.pois[index].yaw),
"size_scale": 1,
"rotateX": 0,
"rotateZ": 0,
"draggable": true,
"cssClass": "hotspot-helper",
"createTooltipFunc": hotspot_embed_move,
"createTooltipArgs": window.pois[index].id,
"dragHandlerFunc": drag_embed_move,
"dragHandlerArgs": [window.pois[index].id,index]
});
init_poi_embed();
$('#poi_embded_move_'+id).css({'opacity':1,'pointer-events':'initial'});
$('#poi_embded_helper_'+id+'_1').css({'opacity':1,'pointer-events':'initial'});
$('#poi_embded_helper_'+id+'_2').css({'opacity':1,'pointer-events':'initial'});
$('#poi_embded_helper_'+id+'_3').css({'opacity':1,'pointer-events':'initial'});
$('#poi_embded_helper_'+id+'_4').css({'opacity':1,'pointer-events':'initial'});
$('#rotateX').parent().hide();
$('#size_scale').parent().hide();
$('#scale').parent().hide();
} else {
$('#msg_drag_poi').show();
$('#msg_drag_embed').hide();
switch(window.pois[index].type) {
case 'callout':
$('#rotateX').parent().hide();
$('#size_scale').parent().hide();
$('#scale').parent().hide();
break;
default:
$('#rotateX').parent().show();
$('#size_scale').parent().show();
$('#scale').parent().show();
break;
}
$('#rotateX').val(window.pois[index].rotateX);
$('#rotateZ').val(window.pois[index].rotateZ);
$('#size_scale').val(window.pois[index].size_scale);
$('#perspective_values').html('('+window.pois[index].rotateX+','+window.pois[index].rotateZ+')');
$('#size_values').html('('+window.pois[index].size_scale+')');
$('#rotateX').attr('oninput','adjust_perspective_p('+id+','+index+')');
$('#rotateZ').attr('oninput','adjust_perspective_p('+id+','+index+')');
$('#size_scale').attr('oninput','adjust_size_scale_p('+id+','+index+')');
if(window.pois[index].embed_type!='' && window.pois[index].transform3d==0) {
window.viewer.removeHotSpot("p"+id.toString());
window.viewer.addHotSpot({
"id": "p"+window.pois[index].id,
"type": window.pois[index].embed_type,
"object": "poi_embed",
"draggable": true,
"transform3d": parseInt(window.pois[index].transform3d),
"tooltip_type": "",
"pitch": parseFloat(window.pois[index].pitch),
"yaw": parseFloat(window.pois[index].yaw),
"rotateX": parseInt(window.pois[index].rotateX),
"rotateZ": parseInt(window.pois[index].rotateZ),
"size_scale": parseFloat(window.pois[index].size_scale),
"cssClass": "hotspot-embed",
"createTooltipFunc": hotspot_embed,
"createTooltipArgs": window.pois[index],
"dragHandlerFunc": drag_poi_move,
"dragHandlerArgs": index
});
clearInterval(interval_adjust_embed_helpers_all);
interval_adjust_embed_helpers_all = setInterval(function () {
adjust_poi_embed_helpers_all();
adjust_marker_embed_helpers_all();
count_adjust_embed_helpers_all++;
if(count_adjust_embed_helpers_all>=500) {
clearInterval(interval_adjust_embed_helpers_all);
count_adjust_embed_helpers_all=0;
}
},1);
} else {
window.viewer.removeHotSpot(id.toString());
switch(window.pois[index].type) {
case 'callout':
window.viewer.addHotSpot({
"id": window.pois[index].id,
"type": 'poi',
"transform3d": false,
"draggable": true,
"scale": false,
"pitch": parseFloat(window.pois[index].pitch),
"yaw": parseFloat(window.pois[index].yaw),
"rotateX": 0,
"rotateZ": 0,
"size_scale": 1,
"cssClass": "custom-hotspot-content",
"createTooltipFunc": hotspot_p_callout,
"createTooltipArgs": window.pois[index],
"dragHandlerFunc": drag_poi_move,
"dragHandlerArgs": index
});
break;
default:
window.viewer.addHotSpot({
"id": window.pois[index].id,
"type": 'poi',
"transform3d": false,
"draggable": true,
"scale": (parseInt(window.pois[index].scale)==1) ? true : false,
"pitch": parseFloat(window.pois[index].pitch),
"yaw": parseFloat(window.pois[index].yaw),
"rotateX": parseInt(window.pois[index].rotateX),
"rotateZ": parseInt(window.pois[index].rotateZ),
"size_scale": parseFloat(window.pois[index].size_scale),
"cssClass": "custom-hotspot-content",
"createTooltipFunc": hotspot_p,
"createTooltipArgs": window.pois[index],
"dragHandlerFunc": drag_poi_move,
"dragHandlerArgs": index
});
break;
}
}
setTimeout(function () {
window.viewer.resize();
$('.hotspot_'+id).addClass('grabbable');
},100);
}
$('#btn_change_zindex_left').attr('onclick','change_zindex_p_down('+id+','+index+')');
$('#btn_change_zindex_right').attr('onclick','change_zindex_p_up('+id+','+index+')');
$('#zIndex_value').html(window.pois[index].zIndex);
$('#confirm_move .btn_confirm').attr('onclick','confirm_move_poi('+id+','+index+','+index_poi_add+')');
$('#confirm_move .btn_close').attr('onclick','exit_move_poi('+id+','+index+')');
show_poi_apply_move(true);
$('#confirm_move').show();
}
window.adjust_perspective_m = function(id,index) {
var rotateX = $('#rotateX').val();
var rotateZ = $('#rotateZ').val();
var scale = $('#scale').is(':checked') ? 1:0;
window.markers[index].rotateX = rotateX;
window.markers[index].rotateZ = rotateZ;
window.markers[index].scale = scale;
window.viewer.removeHotSpot(id.toString());
window.viewer.addHotSpot({
"id": window.markers[index].id,
"type": 'marker',
"transform3d": false,
"scale": (parseInt(window.markers[index].scale)==1) ? true : false,
"pitch": parseFloat(window.markers[index].pitch),
"yaw": parseFloat(window.markers[index].yaw),
"draggable": true,
"rotateX": parseInt(window.markers[index].rotateX),
"rotateZ": parseInt(window.markers[index].rotateZ),
"size_scale": parseFloat(window.markers[index].size_scale),
"cssClass": "custom-hotspot",
"createTooltipFunc": hotspot_m,
"createTooltipArgs": window.markers[index],
"dragHandlerFunc": drag_marker_move,
"dragHandlerArgs": index
});
$('.hotspot_'+id).addClass('grabbable');
$('#perspective_values').html('('+window.markers[index].rotateX+','+window.markers[index].rotateZ+')');
}
window.change_zindex_p_down = function (id,index) {
var zindex = parseInt($('#zIndex_value').html());
zindex = zindex - 1;
if(zindex<=1) zindex=1;
$('#zIndex_value').html(zindex);
window.pois[index].zIndex = zindex;
$('.hotspot_'+id).css('z-index',zindex);
}
window.change_zindex_p_up = function (id,index) {
var zindex = parseInt($('#zIndex_value').html());
zindex = zindex + 1;
$('#zIndex_value').html(zindex);
window.pois[index].zIndex = zindex;
$('.hotspot_'+id).css('z-index',zindex);
}
window.change_zindex_m_down = function (id,index) {
var zindex = parseInt($('#zIndex_value').html());
zindex = zindex - 1;
if(zindex<=1) zindex=1;
$('#zIndex_value').html(zindex);
window.markers[index].zIndex = zindex;
$('.hotspot_'+id).css('z-index',zindex);
}
window.change_zindex_m_up = function (id,index) {
var zindex = parseInt($('#zIndex_value').html());
zindex = zindex + 1;
$('#zIndex_value').html(zindex);
window.markers[index].zIndex = zindex;
$('.hotspot_'+id).css('z-index',zindex);
}
window.adjust_perspective_p = function(id,index) {
var rotateX = $('#rotateX').val();
var rotateZ = $('#rotateZ').val();
var scale = $('#scale').is(':checked') ? 1:0;
window.pois[index].rotateX = rotateX;
window.pois[index].rotateZ = rotateZ;
window.pois[index].scale = scale;
if(window.pois[index].embed_type!='' && window.pois[index].transform3d==0) {
window.viewer.removeHotSpot("p"+id.toString());
window.viewer.addHotSpot({
"id": "p"+window.pois[index].id,
"type": window.pois[index].embed_type,
"object": "poi_embed",
"transform3d": parseInt(window.pois[index].transform3d),
"tooltip_type": "",
"draggable": true,
"pitch": parseFloat(window.pois[index].pitch),
"yaw": parseFloat(window.pois[index].yaw),
"rotateX": parseInt(window.pois[index].rotateX),
"rotateZ": parseInt(window.pois[index].rotateZ),
"size_scale": parseFloat(window.pois[index].size_scale),
"cssClass": "hotspot-embed",
"createTooltipFunc": hotspot_embed,
"createTooltipArgs": window.pois[index],
"dragHandlerFunc": drag_poi_move,
"dragHandlerArgs": index
});
clearInterval(interval_adjust_embed_helpers_all);
interval_adjust_embed_helpers_all = setInterval(function () {
adjust_poi_embed_helpers_all();
adjust_marker_embed_helpers_all();
count_adjust_embed_helpers_all++;
if(count_adjust_embed_helpers_all>=500) {
clearInterval(interval_adjust_embed_helpers_all);
count_adjust_embed_helpers_all=0;
}
},1);
} else {
window.viewer.removeHotSpot(id.toString());
window.viewer.addHotSpot({
"id": window.pois[index].id,
"type": 'poi',
"transform3d": false,
"draggable": true,
"scale": (parseInt(window.pois[index].scale)==1) ? true : false,
"pitch": parseFloat(window.pois[index].pitch),
"yaw": parseFloat(window.pois[index].yaw),
"rotateX": parseInt(window.pois[index].rotateX),
"rotateZ": parseInt(window.pois[index].rotateZ),
"size_scale": parseFloat(window.pois[index].size_scale),
"cssClass": "custom-hotspot-content",
"createTooltipFunc": hotspot_p,
"createTooltipArgs": window.pois[index],
"dragHandlerFunc": drag_poi_move,
"dragHandlerArgs": index
});
}
$('.hotspot_'+id).addClass('grabbable');
$('#perspective_values').html('('+window.pois[index].rotateX+','+window.pois[index].rotateZ+')');
}
window.adjust_size_scale_m = function(id,index) {
var size_scale = $('#size_scale').val();
var scale = $('#scale').is(':checked') ? 1:0;
window.markers[index].size_scale = size_scale;
window.markers[index].scale = scale;
window.viewer.removeHotSpot(id.toString());
window.viewer.addHotSpot({
"id": window.markers[index].id,
"type": 'marker',
"transform3d": false,
"scale": (parseInt(window.markers[index].scale)==1) ? true : false,
"pitch": parseFloat(window.markers[index].pitch),
"yaw": parseFloat(window.markers[index].yaw),
"draggable": true,
"rotateX": parseInt(window.markers[index].rotateX),
"rotateZ": parseInt(window.markers[index].rotateZ),
"size_scale": parseFloat(window.markers[index].size_scale),
"cssClass": "custom-hotspot",
"createTooltipFunc": hotspot_m,
"createTooltipArgs": window.markers[index],
"dragHandlerFunc": drag_marker_move,
"dragHandlerArgs": index
});
$('.hotspot_'+id).addClass('grabbable');
$('#size_values').html('('+window.markers[index].size_scale+')');
}
window.adjust_size_scale_p = function(id,index) {
var size_scale = $('#size_scale').val();
var scale = $('#scale').is(':checked') ? 1:0;
window.pois[index].size_scale = size_scale;
window.pois[index].scale = scale;
if(window.pois[index].embed_type!='' && window.pois[index].transform3d==0) {
window.viewer.removeHotSpot("p"+id.toString());
window.viewer.addHotSpot({
"id": "p"+window.pois[index].id,
"type": window.pois[index].embed_type,
"object": "poi_embed",
"transform3d": parseInt(window.pois[index].transform3d),
"draggable": true,
"tooltip_type": "",
"pitch": parseFloat(window.pois[index].pitch),
"yaw": parseFloat(window.pois[index].yaw),
"rotateX": parseInt(window.pois[index].rotateX),
"rotateZ": parseInt(window.pois[index].rotateZ),
"size_scale": parseFloat(window.pois[index].size_scale),
"cssClass": "hotspot-embed",
"createTooltipFunc": hotspot_embed,
"createTooltipArgs": window.pois[index],
"dragHandlerFunc": drag_poi_move,
"dragHandlerArgs": index
});
clearInterval(interval_adjust_embed_helpers_all);
interval_adjust_embed_helpers_all = setInterval(function () {
adjust_poi_embed_helpers_all();
adjust_marker_embed_helpers_all();
count_adjust_embed_helpers_all++;
if(count_adjust_embed_helpers_all>=500) {
clearInterval(interval_adjust_embed_helpers_all);
count_adjust_embed_helpers_all=0;
}
},1);
} else {
window.viewer.removeHotSpot(id.toString());
window.viewer.addHotSpot({
"id": window.pois[index].id,
"type": 'poi',
"transform3d": false,
"draggable": true,
"scale": (parseInt(window.pois[index].scale)==1) ? true : false,
"pitch": parseFloat(window.pois[index].pitch),
"yaw": parseFloat(window.pois[index].yaw),
"rotateX": parseInt(window.pois[index].rotateX),
"rotateZ": parseInt(window.pois[index].rotateZ),
"size_scale": parseFloat(window.pois[index].size_scale),
"cssClass": "custom-hotspot-content",
"createTooltipFunc": hotspot_p,
"createTooltipArgs": window.pois[index],
"dragHandlerFunc": drag_poi_move,
"dragHandlerArgs": index
});
}
$('#size_values').html('('+window.pois[index].size_scale+')');
}
window.adjust_map_north = function () {
var north_degree = $('#north_degree').val();
$('#map_compass img').css('transform','rotate('+north_degree+'deg)');
}
window.confirm_move_marker = function (id,index) {
if(window.markers[index].embed_type!='') {
var yaw = window.markers[index].yaw;
var pitch = window.markers[index].pitch;
var rotateX = 0;
var rotateZ = 0;
var size_scale = 1;
var scale = 0;
var embed_coords = window.markers[index].embed_coords;
var embed_size = window.markers[index].embed_size;
} else {
var yaw = window.markers[index].yaw;
var pitch = window.markers[index].pitch;
var rotateX = $('#rotateX').val();
var rotateZ = $('#rotateZ').val();
var size_scale = $('#size_scale').val();
var scale = ($('#scale').is(':checked')) ? 1 : 0;
var embed_coords = '';
var embed_size = '';
}
window.markers[index].yaw = yaw;
window.markers[index].pitch = pitch;
window.markers[index].rotateX = rotateX;
window.markers[index].rotateZ = rotateZ;
window.markers[index].size_scale = size_scale;
if(window.markers[index].embed_type=='') {
render_marker(id,index);
setTimeout(function () {
window.viewer.resize();
},100);
}
var visibile_in_views_t = $('#visibile_in_views option');
var visible_multiview_ids = '';
$(visibile_in_views_t).each(function(index, elem){
var id = $(this).attr('id');
if(id !== undefined) {
if($(this).is(':selected')) {
visible_multiview_ids = visible_multiview_ids+id+',';
}
}
});
if(visible_multiview_ids!='') {
visible_multiview_ids = visible_multiview_ids.substring(0,visible_multiview_ids.length-1);
}
window.markers[index].visible_multiview_ids = visible_multiview_ids;
$('.hotspot_'+id).attr('visible_multiview_ids',visible_multiview_ids);
window.is_editing = false;
window.markers_initial[index] = {...window.markers[index]};
save_marker_pos(id,yaw,pitch,rotateX,rotateZ,size_scale,scale,embed_coords,embed_size,window.markers[index].embed_params,window.markers[index].zIndex,visible_multiview_ids);
$('.rooms_slider').removeClass('disabled');
$('.rooms_slider').show();
$(window).trigger('resize');
$('#btn_add_marker').removeClass('disabled');
$('#btn_list_hs').removeClass('disabled');
$('#btn_switch_to_poi').removeClass('disabled');
$('#btn_preview_modal').removeClass('disabled');
$('#btn_toggle_fullscreen').removeClass('disabled');
$('.rooms_view_sel').removeClass('disabled');
$('.icon_visible_view').removeClass('disabled');
$('.custom-hotspot').css({'opacity':1,'pointer-events':'initial'});
$('.marker_embded_helper').css({'opacity':0,'pointer-events':'none'});
$('.marker_embded_move').css({'opacity':0,'pointer-events':'none'});
$('.marker_embed').css({'opacity':1,'pointer-events':'initial'});
$('#confirm_move').hide();
$('.center_helper').show();
if(!$('.icon_visible_view').hasClass('hidden')) {
toggle_visible_view('marker');
}
}
window.exit_move_marker = function (id,index) {
window.markers[index] = {...window.markers_initial[index]};
render_marker(id,index);
setTimeout(function () {
window.viewer.resize();
},100);
window.is_editing = false;
$('.rooms_slider').removeClass('disabled');
$('.rooms_slider').show();
$(window).trigger('resize');
$('#btn_add_marker').removeClass('disabled');
$('#btn_list_hs').removeClass('disabled');
$('#btn_switch_to_poi').removeClass('disabled');
$('#btn_preview_modal').removeClass('disabled');
$('#btn_toggle_fullscreen').removeClass('disabled');
$('.rooms_view_sel').removeClass('disabled');
$('.icon_visible_view').removeClass('disabled');
$('.custom-hotspot').css({'opacity':1,'pointer-events':'initial'});
$('.marker_embded_helper').css({'opacity':0,'pointer-events':'none'});
$('.marker_embded_move').css({'opacity':0,'pointer-events':'none'});
$('.marker_embed').css({'opacity':1,'pointer-events':'initial'});
$('#confirm_move').hide();
$('.center_helper').show();
}
window.confirm_move_poi = function (id,index,index_poi_add) {
if(window.pois[index].embed_type!='' && window.pois[index].transform3d==1) {
var yaw = window.pois[index].yaw;
var pitch = window.pois[index].pitch;
var rotateX = 0;
var rotateZ = 0;
var size_scale = 1;
var embed_coords = window.pois[index].embed_coords;
var embed_size = window.pois[index].embed_size;
} else if(window.pois[index].embed_type!='' && window.pois[index].transform3d==0) {
var yaw = window.pois[index].yaw;
var pitch = window.pois[index].pitch;
var rotateX = $('#rotateX').val();
var rotateZ = $('#rotateZ').val();
var size_scale = $('#size_scale').val();
var embed_coords = window.pois[index].embed_coords;
var embed_size = window.pois[index].embed_size;
} else {
var yaw = window.pois[index].yaw;
var pitch = window.pois[index].pitch;
var rotateX = $('#rotateX').val();
var rotateZ = $('#rotateZ').val();
var size_scale = $('#size_scale').val();
var embed_coords = '';
var embed_size = '';
}
window.pois[index].yaw = yaw;
window.pois[index].pitch = pitch;
window.pois[index].size_scale = size_scale;
window.pois[index].rotateX = rotateX;
window.pois[index].rotateZ = rotateZ;
if(window.pois[index].embed_type=='object3d') {
if(window.pois[index].embed_params!='') {
var tmp = window.pois[index].embed_params.split(",");
var camera_coords = tmp[0];
if(tmp[1]!==undefined) {
var interaction = tmp[1];
} else {
var interaction = 0;
}
if(tmp[2]!==undefined) {
var exposure = tmp[2];
} else {
var exposure = 1;
}
if(tmp[3]!==undefined) {
var environment = tmp[3];
} else {
var environment = 'legacy';
}
if(tmp[4]!==undefined) {
var shadow_intensity = tmp[4];
} else {
var shadow_intensity = 1;
}
if(tmp[5]!==undefined) {
var shadow_softness = tmp[5];
} else {
var shadow_softness = 0.5;
}
if(tmp[7]!==undefined) {
var animation = tmp[7];
} else {
var animation = 'none';
}
} else {
var camera_coords = "";
var interaction = 0;
var exposure = 1;
var environment = 'legacy';
var shadow_intensity = 1;
var shadow_softness = 0.5;
var animation = 'none';
}
var zoom_deg = $('#object3d_zoom').val();
if(zoom_deg==80) zoom_deg='auto';
window.pois[index].embed_params = camera_coords+','+interaction+','+exposure+','+environment+','+shadow_intensity+','+shadow_softness+','+zoom_deg+','+animation;
}
var visibile_in_views_t = $('#visibile_in_views option');
var visible_multiview_ids = '';
$(visibile_in_views_t).each(function(index, elem){
var id = $(this).attr('id');
if(id !== undefined) {
if($(this).is(':selected')) {
visible_multiview_ids = visible_multiview_ids+id+',';
}
}
});
if(visible_multiview_ids!='') {
visible_multiview_ids = visible_multiview_ids.substring(0,visible_multiview_ids.length-1);
}
window.pois[index].visible_multiview_ids = visible_multiview_ids;
$('.hotspot_'+id).attr('visible_multiview_ids',visible_multiview_ids);
window.is_editing = false;
if(window.pois[index].embed_type=='' || window.pois[index].transform3d==0) {
render_poi(id,index);
setTimeout(function () {
window.viewer.resize();
},100);
}
if(window.pois[index].embed_type=='object3d') {
render_poi(id,index);
}
window.pois_initial[index] = {...window.pois[index]};
save_poi_pos(id,yaw,pitch,rotateX,rotateZ,size_scale,embed_coords,embed_size,window.pois[index].transform3d,window.pois[index].scale,window.pois[index].zIndex,window.pois[index].params,window.pois[index].embed_params,visible_multiview_ids);
$('.rooms_slider').removeClass('disabled');
$('.rooms_slider').show();
$(window).trigger('resize');
$('#btn_add_poi').removeClass('disabled');
$('#btn_list_hs').removeClass('disabled');
$('#btn_switch_to_marker').removeClass('disabled');
$('#btn_preview_modal').removeClass('disabled');
$('#btn_toggle_fullscreen').removeClass('disabled');
$('.rooms_view_sel').removeClass('disabled');
$('.icon_visible_view').removeClass('disabled');
$('.custom-hotspot-content').css({'opacity':1,'pointer-events':'initial'});
$('.poi_embded_helper').css({'opacity':0,'pointer-events':'none'});
$('.poi_embded_move').css({'opacity':0,'pointer-events':'none'});
$('.poi_embed').css({'opacity':1,'pointer-events':'initial'});
$('#confirm_move').hide();
$('.center_helper').show();
if(index_poi_add!=null) {
edit_p(id,index,id);
}
if(!$('.icon_visible_view').hasClass('hidden')) {
toggle_visible_view('poi');
}
}
window.confirm_move_measure = function (id,index,id_measure_add) {
var visibile_in_views_t = $('#visibile_in_views option');
var visible_multiview_ids = '';
$(visibile_in_views_t).each(function(index, elem){
var id = $(this).attr('id');
if(id !== undefined) {
if($(this).is(':selected')) {
visible_multiview_ids = visible_multiview_ids+id+',';
}
}
});
if(visible_multiview_ids!='') {
visible_multiview_ids = visible_multiview_ids.substring(0,visible_multiview_ids.length-1);
}
window.measures[index].visible_multiview_ids = visible_multiview_ids;
$('#line_'+id).attr('visible_multiview_ids',visible_multiview_ids);
window.is_editing = false;
window.measures_initial[index] = {...window.measures[index]};
save_measure(window.measures[index]);
setTimeout(function () {
window.viewer.resize();
},100);
window.count_adjust_measures = 0;
window.interval_adjust_measures = setInterval(function () {
if(window.count_adjust_measures>=110) {
clearInterval(window.interval_adjust_measures);
window.count_adjust_measures = 0;
}
adjust_measurements(false);
window.count_adjust_measures++;
},1);
$('.rooms_slider').removeClass('disabled');
$('.rooms_slider').show();
$(window).trigger('resize');
$('#btn_add_measure').removeClass('disabled');
$('#btn_list_hs').removeClass('disabled');
$('#btn_preview_modal').removeClass('disabled');
$('#btn_toggle_fullscreen').removeClass('disabled');
$('.rooms_view_sel').removeClass('disabled');
$('.icon_visible_view').removeClass('disabled');
$('svg.leader-line').css({'opacity':1});
$('svg.leader-line path').css({'pointer-events':'initial'});
$('svg.leader-line text').css('pointer-events','initial');
$('svg.leader-line use').css('pointer-events','initial');
$('.measure_points').css({'opacity':0,'pointer-events':'none'});
$('#confirm_move').hide();
$('.center_helper').show();
if(id_measure_add!=null) {
edit_ms(id_measure_add,index);
}
if(!$('.icon_visible_view').hasClass('hidden')) {
toggle_visible_view('measure');
}
}
window.confirm_edit_measure = function (id,index) {
window.is_editing = false;
window.measures_initial[index] = {...window.measures[index]};
save_measure(window.measures[index]);
setTimeout(function () {
window.viewer.resize();
},100);
window.count_adjust_measures = 0;
window.interval_adjust_measures = setInterval(function () {
if(window.count_adjust_measures>=110) {
clearInterval(window.interval_adjust_measures);
window.count_adjust_measures = 0;
}
adjust_measurements(false);
window.count_adjust_measures++;
},1);
$('.rooms_slider').removeClass('disabled');
$('.rooms_slider').show();
$(window).trigger('resize');
$('#btn_add_measure').removeClass('disabled');
$('#btn_list_hs').removeClass('disabled');
$('#btn_preview_modal').removeClass('disabled');
$('#btn_toggle_fullscreen').removeClass('disabled');
$('.rooms_view_sel').removeClass('disabled');
$('.icon_visible_view').removeClass('disabled');
$('svg.leader-line').css({'opacity':1});
$('svg.leader-line path').css({'pointer-events':'initial'});
$('svg.leader-line text').css('pointer-events','initial');
$('svg.leader-line use').css('pointer-events','initial');
$('.measure_points').css({'opacity':0,'pointer-events':'none'});
$('#confirm_edit').hide();
$('.center_helper').show();
}
window.exit_move_poi = function (id,index) {
window.pois[index] = {...window.pois_initial[index]};
window.is_editing = false;
render_poi(id,index);
setTimeout(function () {
window.viewer.resize();
},100);
$('.rooms_slider').removeClass('disabled');
$('.rooms_slider').show();
$(window).trigger('resize');
$('#btn_add_poi').removeClass('disabled');
$('#btn_list_hs').removeClass('disabled');
$('#btn_switch_to_marker').removeClass('disabled');
$('#btn_preview_modal').removeClass('disabled');
$('#btn_toggle_fullscreen').removeClass('disabled');
$('.rooms_view_sel').removeClass('disabled');
$('.icon_visible_view').removeClass('disabled');
$('.custom-hotspot-content').css({'opacity':1,'pointer-events':'initial'});
$('.poi_embded_helper').css({'opacity':0,'pointer-events':'none'});
$('.poi_embded_move').css({'opacity':0,'pointer-events':'none'});
$('.poi_embed').css({'opacity':1,'pointer-events':'initial'});
$('#confirm_move').hide();
$('.center_helper').show();
}
function render_measure(id,index) {
var measure = window.measures[index];
window.viewer.removeHotSpot('measure_'+measure.id+'_start');
window.viewer.removeHotSpot('measure_'+measure.id+'_end');
window.viewer.addHotSpot({
"id": 'measure_'+measure.id+'_start',
"type": 'measure',
"view_type": 0,
"object": "measure",
"transform3d": false,
"scale": false,
"draggable": true,
"tooltip_type": '',
"pitch": parseFloat(measure.pitch_start),
"yaw": parseFloat(measure.yaw_start),
"rotateX": 0,
"rotateZ": 0,
"size_scale": 1,
"animation": '',
"cssClass": "custom-hotspot-measure",
"createTooltipFunc": hotspot_measure,
"createTooltipArgs": {id:measure.id,dir:'start',index:index,yaw:parseFloat(measure.yaw_start),pitch:parseFloat(measure.pitch_start)},
"dragHandlerFunc": drag_measure_move,
"dragHandlerArgs": {id:measure.id,dir:'start',index:index}
});
window.viewer.addHotSpot({
"id": 'measure_'+measure.id+'_end',
"type": 'measure',
"view_type": 0,
"object": "measure",
"transform3d": false,
"scale": false,
"draggable": true,
"tooltip_type": '',
"pitch": parseFloat(measure.pitch_end),
"yaw": parseFloat(measure.yaw_end),
"rotateX": 0,
"rotateZ": 0,
"size_scale": 1,
"animation": '',
"cssClass": "custom-hotspot-measure",
"createTooltipFunc": hotspot_measure,
"createTooltipArgs": {id:measure.id,dir:'end',index:index,yaw:parseFloat(measure.yaw_end),pitch:parseFloat(measure.pitch_end)},
"dragHandlerFunc": drag_measure_move,
"dragHandlerArgs": {id:measure.id,dir:'end',index:index}
});
}
window.render_edit_measure = function() {
window.enable_adjust_measurements = false;
window.measures[window.measure_index_edit].label = $('#measure_label').val();
var params = JSON.parse(window.measures[window.measure_index_edit].params);
params.line_size = parseFloat($('#measure_line_size').val());
params.color_line = $('#measure_line_color').val();
params.color_text = $('#measure_color_text').val();
params.color_outline_text = $('#measure_color_outline_text').val();
params.size_text = parseInt($('#measure_size_text').val());
params.start_plug = $('#measure_start_plug option:selected').attr('id');
params.end_plug = $('#measure_end_plug option:selected').attr('id');
params.start_plug_color = $('#measure_start_plug_color').val();
params.end_plug_color = $('#measure_end_plug_color').val();
params.start_plug_size = parseFloat($('#measure_start_plug_size').val());
params.end_plug_size = parseFloat($('#measure_end_plug_size').val());
$('#measure_line_size_value').html(params.line_size);
$('#measure_size_text_value').html(params.size_text);
$('#measure_start_plug_size_value').html(params.start_plug_size);
$('#measure_end_plug_size_value').html(params.end_plug_size);
window.measures[window.measure_index_edit].params = JSON.stringify(params);
if(window.measures[window.measure_index_edit].label=='' || window.measures[window.measure_index_edit].label==null) {
window.measure_lines[window.measure_index_edit].setOptions({
hide: false,
color:params.color_line,
size:params.line_size,
path:'straight',
startPlug:params.start_plug,
endPlug:params.end_plug,
startPlugColor:params.start_plug_color,
endPlugColor:params.end_plug_color,
startPlugSize: params.start_plug_size,
endPlugSize: params.end_plug_size,
middleLabel: ''
});
} else {
window.measure_lines[window.measure_index_edit].setOptions({
hide: false,
color:params.color_line,
size:params.line_size,
path:'straight',
startPlug:params.start_plug,
endPlug:params.end_plug,
startPlugColor:params.start_plug_color,
endPlugColor:params.end_plug_color,
startPlugSize: params.start_plug_size,
endPlugSize: params.end_plug_size,
middleLabel: LeaderLine.pathLabel(window.measures[window.measure_index_edit].label, {color: params.color_text, ontFamily: window.viewer_font_family, fontSize: params.size_text+'px', outlineColor: params.color_outline_text})
});
}
$('svg.leader-line path,svg.leader-line text,svg.leader-line use').off('click').on('click',function() {
if(!window.is_editing) {
var svg = findUpTag($(this)[0],'svg');
var id_line = svg.id.replace('line_','');
$('svg.leader-line').css({'opacity':0.5});
$('#line_'+id_line).css({'opacity':1});
$('.measure_points').css({'opacity':0,'pointer-events':'none'});
click_edit_measure(id_line);
}
});
window.enable_adjust_measurements = true;
$(document).trigger('resize');
setTimeout(function () {
window.viewer.resize();
adjust_measurements(true);
},100);
}
window.exit_move_measure = function (id,index) {
window.measures[index] = {...window.measures_initial[index]};
window.is_editing = false;
window.enable_adjust_measurements = false;
render_measure(id,index);
initialize_measures(false);
window.enable_adjust_measurements = true;
setTimeout(function () {
window.viewer.resize();
},100);
window.count_adjust_measures = 0;
window.interval_adjust_measures = setInterval(function () {
if(window.count_adjust_measures>=110) {
clearInterval(window.interval_adjust_measures);
window.count_adjust_measures = 0;
}
adjust_measurements(false);
window.count_adjust_measures++;
},1);
$('.rooms_slider').removeClass('disabled');
$('.rooms_slider').show();
$(window).trigger('resize');
$('#btn_add_measure').removeClass('disabled');
$('#btn_list_hs').removeClass('disabled');
$('#btn_preview_modal').removeClass('disabled');
$('#btn_toggle_fullscreen').removeClass('disabled');
$('.rooms_view_sel').removeClass('disabled');
$('.icon_visible_view').removeClass('disabled');
$('svg.leader-line').css({'opacity':1});
$('svg.leader-line path').css({'pointer-events':'initial'});
$('svg.leader-line text').css('pointer-events','initial');
$('svg.leader-line use').css('pointer-events','initial');
$('.measure_points').css({'opacity':0,'pointer-events':'none'});
$('#confirm_move').hide();
$('.center_helper').show();
}
window.exit_edit_measure = function (id,index) {
window.measures[index] = {...window.measures_initial[index]};
window.is_editing = false;
window.enable_adjust_measurements = false;
render_measure(id,index);
initialize_measures(false);
window.enable_adjust_measurements = true;
setTimeout(function () {
window.viewer.resize();
},100);
window.count_adjust_measures = 0;
window.interval_adjust_measures = setInterval(function () {
if(window.count_adjust_measures>=110) {
clearInterval(window.interval_adjust_measures);
window.count_adjust_measures = 0;
}
adjust_measurements(false);
window.count_adjust_measures++;
},1);
$('.rooms_slider').removeClass('disabled');
$('.rooms_slider').show();
$(window).trigger('resize');
$('#btn_add_measure').removeClass('disabled');
$('#btn_list_hs').removeClass('disabled');
$('#btn_preview_modal').removeClass('disabled');
$('#btn_toggle_fullscreen').removeClass('disabled');
$('.rooms_view_sel').removeClass('disabled');
$('.icon_visible_view').removeClass('disabled');
$('svg.leader-line').css({'opacity':1});
$('svg.leader-line path').css({'pointer-events':'initial'});
$('svg.leader-line text').css('pointer-events','initial');
$('svg.leader-line use').css('pointer-events','initial');
$('.measure_points').css({'opacity':0,'pointer-events':'none'});
$('#confirm_edit').hide();
$('.center_helper').show();
}
window.confirm_edit_marker = function (id,index) {
if($('#override_pos_edit').is(':checked')) {
var yaw_m = window.viewer_pos.getYaw();
var pitch_m = window.viewer_pos.getPitch();
} else {
var yaw_m = '';
var pitch_m = '';
}
var embed_content = '';
var embed_type = window.markers[index].embed_type;
var lookat = $('#lookat option:selected').attr('id');
var show_room = $('#marker_style option:selected').attr('id');
var tooltip_type = $('#tooltip_type option:selected').attr('id');
var tooltip_visibility = $('#tooltip_visibility option:selected').attr('id');
var tooltip_background = $('#tooltip_background').val();
var tooltip_color = $('#tooltip_color').val();
var tooltip_text = window.tooltip_text_editor.root.innerHTML;
var color = $('#marker_color').val();
var background = $('#marker_background').val();
var css_class = $('#marker_css_class').val();
var icon = $('#marker_icon').val();
var icon_type = $('#marker_icon_type option:selected').attr('id');
var sound = $('#marker_sound option:selected').attr('id');
if(show_room==4) {
var id_icon_library = $('#marker_library_icon').val();
if(id_icon_library==0) {
alert(window.backend_labels.select_icon_msg);
return;
}
} else {
var id_icon_library = 0;
}
switch(window.markers[index].embed_type) {
case 'selection':
embed_content = 'border-width:'+$('#marker_border_px').val()+'px;';
break;
default:
break;
}
var array_lang = {};
array_lang['tooltip_text'] = {};
$('.input_lang[data-target-id="tooltip_text_html"]').each(function() {
var lang = $(this).attr('data-lang');
var value = window.tooltip_text_editor_lang[lang].root.innerHTML;
array_lang['tooltip_text'][lang]=value;
var exist_l = false;
jQuery.each(window.markers[index].array_lang, function(index_l,item_lang) {
if(item_lang.language==lang) {
exist_l = true;
item_lang.tooltip_text=value;
}
});
if(!exist_l) {
window.markers[index].array_lang.push({'id_marker':id,'language':lang,'tooltip_text':value});
}
});
window.markers[index].yaw_room_target = yaw_m;
window.markers[index].pitch_room_target = pitch_m;
window.markers[index].id_icon_library = id_icon_library;
window.markers[index].show_room = show_room;
window.markers[index].tooltip_type = tooltip_type;
window.markers[index].tooltip_visibility = tooltip_visibility;
window.markers[index].tooltip_background = tooltip_background;
window.markers[index].tooltip_color = tooltip_color;
window.markers[index].tooltip_text = tooltip_text;
window.markers[index].css_class = css_class;
window.markers[index].icon_type = icon_type;
window.markers[index].sound = sound;
window.markers[index].embed_content = embed_content;
window.markers[index].lookat = lookat;
window.markers_initial[index] = {...window.markers[index]};
window.is_editing = false;
var id_room_target = window.markers[index].id_room_target;
change_exclude_apply_all('marker');
save_marker_edit(id,id_room_target,yaw_m,pitch_m,lookat);
save_marker_style(id,show_room,color,background,icon,id_icon_library,tooltip_type,tooltip_text,css_class,embed_content,window.markers[index].animation,icon_type,tooltip_visibility,tooltip_background,tooltip_color,sound,array_lang);
$('.rooms_slider').removeClass('disabled');
$('.rooms_slider').show();
$(window).trigger('resize');
$('#btn_add_marker').removeClass('disabled');
$('#btn_list_hs').removeClass('disabled');
$('#btn_switch_to_poi').removeClass('disabled');
$('#btn_preview_modal').removeClass('disabled');
$('#btn_toggle_fullscreen').removeClass('disabled');
$('.rooms_view_sel').removeClass('disabled');
$('.icon_visible_view').removeClass('disabled');
var yaw = parseFloat(window.markers[index].yaw);
var pitch = parseFloat(window.markers[index].pitch);
window.viewer.lookAt(pitch,yaw,100,200);
$('.poi_embded_helper').css({'opacity':0,'pointer-events':'none'});
$('.poi_embded_move').css({'opacity':0,'pointer-events':'none'});
$('.poi_embed').css({'opacity':1,'pointer-events':'initial'});
$('#confirm_edit').hide();
if(window.markers[index].embed_type!='') {
render_marker(id,index);
}
}
window.exit_edit_marker = function (id,index) {
window.markers[index] = {...window.markers_initial[index]};
render_marker(id,index);
window.is_editing = false;
$('.rooms_slider').removeClass('disabled');
$('.rooms_slider').show();
$(window).trigger('resize');
$('#btn_add_marker').removeClass('disabled');
$('#btn_list_hs').removeClass('disabled');
$('#btn_switch_to_poi').removeClass('disabled');
$('#btn_preview_modal').removeClass('disabled');
$('#btn_toggle_fullscreen').removeClass('disabled');
$('.rooms_view_sel').removeClass('disabled');
$('.icon_visible_view').removeClass('disabled');
var yaw = parseFloat(window.markers[index].yaw);
var pitch = parseFloat(window.markers[index].pitch);
window.currentYaw = yaw;
window.currentPitch = pitch;
window.viewer.lookAt(pitch,yaw,100,200);
$('.poi_embded_helper').css({'opacity':0,'pointer-events':'none'});
$('.poi_embded_move').css({'opacity':0,'pointer-events':'none'});
$('.poi_embed').css({'opacity':1,'pointer-events':'initial'});
$('#confirm_edit').hide();
}
window.confirm_edit_poi = function (id,index) {
window.is_editing = false;
var content = '';
var params = '';
var embed_content = '';
var target = '';
var c_title = '';
var c_description = '';
var song_bg_volume = 0.3;
var type = window.pois[index].type;
var embed_type = window.pois[index].embed_type;
switch (type) {
case 'image':
c_title = $('#poi_title').val();
c_description = $('#poi_description').val();
content = $('#poi_content').val();
break;
case 'video':
c_title = $('#poi_title').val();
c_description = $('#poi_description').val();
content = $('#poi_content').val();
break;
case 'video360':
c_title = $('#poi_title').val();
c_description = $('#poi_description').val();
content = $('#poi_content').val();
break;
case 'link':
case 'pdf':
case 'pointclouds':
c_title = $('#poi_title').val();
c_description = $('#poi_description').val();
content = $('#poi_content').val();
break;
case 'gallery':
content = '';
var gallery_order = $('#poi_gallery_random').is(':checked') ? 'random' : 'sort';
var gallery_transition = $('#g_transition option:selected').attr('id');
var gallery_thumbs = $('#g_thumbs option:selected').attr('id');
var gallery_autoplay = $('#g_autoplay').is(':checked') ? 1 : 0;
var gallery_slide_duration = $('#g_slide_duration').val();
if(gallery_slide_duration=='' || gallery_slide_duration<=0) gallery_slide_duration=4;
params = {'order':gallery_order,'gallery_transition':gallery_transition,'gallery_thumbs':gallery_thumbs,'gallery_autoplay':gallery_autoplay,'gallery_slide_duration':gallery_slide_duration};
params = JSON.stringify(params);
break;
case 'html':
c_title = $('#poi_title').val();
c_description = $('#poi_description').val();
content = window.html_editor.root.innerHTML;
break;
case 'html_sc':
c_title = $('#poi_title').val();
c_description = $('#poi_description').val();
content = window.poi_content_html_sc.getValue();
break;
case 'form':
content = [{},{},{},{},{},{},{},{},{},{},{}];
var title = $('#form_title').val();
var button = $('#form_button').val();
var response = $('#form_response').val();
var description = $('#form_description').val();
var background = $('#form_background').val();
var color = $('#form_color').val();
var background_button = $('#form_background_button').val();
var color_button = $('#form_color_button').val();
content[0]['title'] = title;
content[0]['button'] = button;
content[0]['response'] = response;
content[0]['description'] = description;
content[0]['background'] = background;
content[0]['color'] = color;
content[0]['background_button'] = background_button;
content[0]['color_button'] = color_button;
content[0]['privacy_policy'] = $('#form_privacy_policy').is(':checked');
content[0]['send_email'] = $('#form_send_email').is(':checked');
content[0]['email'] = $('#form_email').val();
for(var i=1;i<=10;i++) {
content[i]['enabled'] = $('#form_field_'+i).is(':checked');
content[i]['required'] = $('#form_field_required_'+i).is(':checked');
content[i]['type'] = $('#form_field_type_'+i+' option:selected').attr('id');
content[i]['label'] = $('#form_field_label_'+i).val();
}
content = JSON.stringify(content);
break;
case 'link_ext':
target = $('#poi_target option:selected').attr('id');
content = $('#poi_content').val();
break;
case 'google_maps':
c_title = $('#poi_title').val();
c_description = $('#poi_description').val();
content = $('#poi_gm_map').val()+"|"+$('#poi_gm_street').val();
break;
case 'object360':
c_title = $('#poi_title').val();
c_description = $('#poi_description').val();
content = '';
break;
case 'object3d':
c_title = $('#poi_title').val();
c_description = $('#poi_description').val();
content = $('#poi_content').val();
var placement = $('#params_ar option:selected').attr('id');
var interaction = $('#params_interaction option:selected').attr('id');
var exposure = $('#params_exposure').val();
var environment = $('#params_environment option:selected').attr('id');
var animation = $('#params_animation option:selected').attr('id');
params = placement+','+interaction+','+exposure+','+environment+','+animation;
break;
case 'audio':
song_bg_volume = $('#poi_song_bg_volume').val();
content = $('#poi_content').val();
break;
case 'lottie':
c_title = $('#poi_title').val();
c_description = $('#poi_description').val();
content = $('#poi_content').val();
break;
case 'product':
c_title = $('#poi_title').val();
c_description = $('#poi_description').val();
content = $('#poi_content_product option:selected').attr('id');
break;
case 'switch_pano':
if($('#switch_panorama_default').is(':checked')) {
content = 0;
} else {
if($('#poi_content').val()=='') {
content = '';
} else {
content = $('#switch_panorama_id').val();
}
}
window.pois[index].content = content;
break;
case 'callout':
params = window.pois[index].params_d;
break;
default:
content = $('#poi_content').val();
break;
}
var view_type = parseInt($('#view_type option:selected').attr('id'));
var box_pos = $('#box_pos option:selected').attr('id');
var box_max_width = $('#box_max_width').val();
var box_background = $('#box_background').val();
var box_color = $('#box_color').val();
var box_maximize = 0;
if($('#box_maximize').is(':checked')) { box_maximize=1; }
var auto_close = $('#auto_close').val();
var color = $('#poi_color').val();
var background = $('#poi_background').val();
var css_class = $('#poi_css_class').val();
var icon = $('#poi_icon').val();
var label = $('#poi_label').val();
var style = $('#poi_style option:selected').attr('id');
var icon_type = $('#poi_icon_type option:selected').attr('id');
var sound = $('#poi_sound option:selected').attr('id');
var tooltip_type = $('#tooltip_type option:selected').attr('id');
var tooltip_visibility = $('#tooltip_visibility option:selected').attr('id');
var tooltip_background = $('#tooltip_background').val();
var tooltip_color = $('#tooltip_color').val();
var tooltip_text = window.tooltip_text_editor.root.innerHTML;
if(style==1) {
var id_icon_library = $('#poi_library_icon').val();
if(id_icon_library==0) {
alert(window.backend_labels.select_icon_msg);
return;
}
} else {
var id_icon_library = 0;
}
var embed_video_autoplay = 1;
var embed_video_muted = 1;
var embed_video_loop = 1;
var embed_gallery_autoplay = 0;
var embed_content = $('#poi_embed_content').val();
switch(window.pois[index].embed_type) {
case 'video':
case 'video_transparent':
if($('#embed_video_autoplay').is(':checked')) embed_video_autoplay=1; else embed_video_autoplay=0;
if($('#embed_video_muted').is(':checked')) embed_video_muted=1; else embed_video_muted=0;
if($('#embed_video_loop').is(':checked')) embed_video_loop=1; else embed_video_loop=0;
break;
case 'video_chroma':
if($('#embed_video_autoplay').is(':checked')) embed_video_autoplay=1; else embed_video_autoplay=0;
if($('#embed_video_muted').is(':checked')) embed_video_muted=1; else embed_video_muted=0;
if($('#embed_video_loop').is(':checked')) embed_video_loop=1; else embed_video_loop=0;
var chroma_color = $('#chroma_color').val().replace("rgb(","").replace(")","");
var chroma_tolerance = $('#chroma_tolerance').val();
params = chroma_color+','+chroma_tolerance;
break;
case 'gallery':
embed_gallery_autoplay = $('#embed_gallery_autoplay').val();
embed_content = get_first_poi_embed_gallery_image(id);
window.pois[index].embed_params = {'order':($('#poi_embed_gallery_random').is(':checked') ? 'random' : 'sort')};
window.pois[index].embed_params = JSON.stringify(window.pois[index].embed_params);
break;
case 'text':
embed_content = window.poi_embed_content_html_editor.root.innerHTML+' border-width:'+$('#poi_border_px').val()+'px;';
break;
case 'html':
embed_content = window.poi_embed_content_html_sc.getValue();
break;
case 'selection':
embed_content = 'border-width:'+$('#poi_border_px').val()+'px;';
break;
case 'object3d':
var embed_params = window.pois[index].embed_params;
if(embed_params!='') {
var tmp = embed_params.split(",");
var camera_coords = tmp[0];
if(tmp[6]!==undefined) {
var zoom_deg = tmp[6];
} else {
var zoom_deg = 'auto';
}
} else {
var camera_coords = "";
var zoom_deg = 'auto';
}
var exposure = $('#object3d_exposure').val();
var interaction = $('#object3d_interaction option:selected').attr('id');
var environment = $('#object3d_environment option:selected').attr('id');
var shadow_intensity = $('#object3d_shadow_intensity').val();
var shadow_softness = $('#object3d_shadow_softness').val();
var animation = $('#object3d_animation option:selected').attr('id');
window.pois[index].embed_params = camera_coords+','+interaction+','+exposure+','+environment+','+shadow_intensity+','+shadow_softness+','+zoom_deg+','+animation;
break;
default:
break;
}
if($('#enable_schedule').is(':checked')) {
var date_from = $('#date_from').val();
var date_to = $('#date_to').val();
var hour_from = $('#hour_from').val();
var hour_to = $('#hour_to').val();
var days_1 = ($("#days_1").is(':checked')) ? 1 : 0;
var days_2 = ($("#days_2").is(':checked')) ? 1 : 0;
var days_3 = ($("#days_3").is(':checked')) ? 1 : 0;
var days_4 = ($("#days_4").is(':checked')) ? 1 : 0;
var days_5 = ($("#days_5").is(':checked')) ? 1 : 0;
var days_6 = ($("#days_6").is(':checked')) ? 1 : 0;
var days_7 = ($("#days_7").is(':checked')) ? 1 : 0;
var schedule = {};
schedule['from_date'] = date_from;
schedule['to_date'] = date_to;
schedule['from_hour'] = hour_from;
schedule['to_hour'] = hour_to;
schedule['days'] = days_1+","+days_2+","+days_3+","+days_4+","+days_5+","+days_6+","+days_7;
schedule = JSON.stringify(schedule);
} else {
schedule = '';
}
if(window.pois[index].embed_type!='' && window.pois[index].transform3d==0) {
window.pois[index].embed_size = '';
switch(window.pois[index].embed_type) {
case 'image':
var img_tmp = new Image();
img_tmp.onload = function () {
var height = img_tmp.height;
var width = img_tmp.width;
var ratio = width / height;
if(width>=height) {
window.pois[index].embed_size = '300,'+(300/ratio);
} else {
window.pois[index].embed_size = '100,'+(100/ratio);
}
save_poi_pos(id,window.pois[index].yaw,window.pois[index].pitch,window.pois[index].rotateX,window.pois[index].rotateZ,window.pois[index].size_scale,window.pois[index].embed_coords,window.pois[index].embed_size,window.pois[index].transform3d,window.pois[index].scale,window.pois[index].zIndex,window.pois[index].params,window.pois[index].embed_params,window.pois[index].visible_multiview_ids);
render_poi(id,index);
clearInterval(interval_adjust_embed_helpers_all);
interval_adjust_embed_helpers_all = setInterval(function () {
adjust_poi_embed_helpers_all();
adjust_marker_embed_helpers_all();
count_adjust_embed_helpers_all++;
if(count_adjust_embed_helpers_all>=500) {
clearInterval(interval_adjust_embed_helpers_all);
count_adjust_embed_helpers_all=0;
}
},1);
}
if(embed_content.startsWith("http") || embed_content.startsWith("//")) {
img_tmp.src = embed_content;
} else {
img_tmp.src = '../viewer/'+embed_content;
}
break;
case 'video':
var video = document.createElement('video');
video.addEventListener( "loadedmetadata", function (e) {
var width = this.videoWidth, height = this.videoHeight;
var ratio = width / height;
if(width>=height) {
window.pois[index].embed_size = '300,'+(300/ratio);
} else {
window.pois[index].embed_size = '200,'+(200/ratio);
}
save_poi_pos(id,window.pois[index].yaw,window.pois[index].pitch,window.pois[index].rotateX,window.pois[index].rotateZ,window.pois[index].size_scale,window.pois[index].embed_coords,window.pois[index].embed_size,window.pois[index].transform3d,window.pois[index].scale,window.pois[index].scale,window.pois[index].zIndex,window.pois[index].params,window.pois[index].embed_params,window.pois[index].visible_multiview_ids);
render_poi(id,index);
clearInterval(interval_adjust_embed_helpers_all);
interval_adjust_embed_helpers_all = setInterval(function () {
adjust_poi_embed_helpers_all();
adjust_marker_embed_helpers_all();
count_adjust_embed_helpers_all++;
if(count_adjust_embed_helpers_all>=500) {
clearInterval(interval_adjust_embed_helpers_all);
count_adjust_embed_helpers_all=0;
}
},1);
}, false );
video.preload = 'metadata';
video.src = '../viewer/'+embed_content;
video.load();
break;
}
}
var array_lang = {};
array_lang['tooltip_text'] = {};
$('.input_lang[data-target-id="tooltip_text_html"]').each(function() {
var lang = $(this).attr('data-lang');
var value = window.tooltip_text_editor_lang[lang].root.innerHTML;
array_lang['tooltip_text'][lang]=value;
var exist_l = false;
jQuery.each(window.pois[index].array_lang, function(index_l,item_lang) {
if(item_lang.language==lang) {
exist_l = true;
item_lang.tooltip_text=value;
}
});
if(!exist_l) {
window.pois[index].array_lang.push({'id_poi':id,'language':lang,'embed_content':'','label':'','tooltip_text':value,'title':'','description':'','content':'','params':''});
}
});
array_lang['label'] = {};
$('.input_lang[data-target-id="poi_label"]').each(function() {
var lang = $(this).attr('data-lang');
var value = $(this).val();
array_lang['label'][lang]=value;
var exist_l = false;
jQuery.each(window.pois[index].array_lang, function(index_l,item_lang) {
if(item_lang.language==lang) {
exist_l = true;
item_lang.label=value;
}
});
if(!exist_l) {
window.pois[index].array_lang.push({'id_poi':id,'language':lang,'embed_content':'','label':value,'tooltip_text':'','title':'','description':'','content':'','params':''});
}
});
array_lang['title'] = {};
$('.input_lang[data-target-id="poi_title"]').each(function() {
var lang = $(this).attr('data-lang');
var value = $(this).val();
array_lang['title'][lang]=value;
var exist_l = false;
jQuery.each(window.pois[index].array_lang, function(index_l,item_lang) {
if(item_lang.language==lang) {
exist_l = true;
item_lang.title=value;
}
});
if(!exist_l) {
window.pois[index].array_lang.push({'id_poi':id,'language':lang,'embed_content':'','label':'','tooltip_text':'','title':value,'description':'','content':'','params':''});
}
});
array_lang['description'] = {};
$('.input_lang[data-target-id="poi_description"]').each(function() {
var lang = $(this).attr('data-lang');
var value = $(this).val();
array_lang['description'][lang]=value;
var exist_l = false;
jQuery.each(window.pois[index].array_lang, function(index_l,item_lang) {
if(item_lang.language==lang) {
exist_l = true;
item_lang.description=value;
}
});
if(!exist_l) {
window.pois[index].array_lang.push({'id_poi':id,'language':lang,'embed_content':'','label':'','tooltip_text':'','title':'','description':value,'content':'','params':''});
}
});
switch(window.pois[index].embed_type) {
case 'image':
case 'video':
case 'video_transparent':
case 'link':
case 'object3d':
array_lang['embed_content'] = {};
$('.input_lang[data-target-id="poi_embed_content"]').each(function() {
var lang = $(this).attr('data-lang');
var value = $(this).val();
array_lang['embed_content'][lang]=value;
var exist_l = false;
jQuery.each(window.pois[index].array_lang, function(index_l,item_lang) {
if(item_lang.language==lang) {
exist_l = true;
item_lang.embed_content=value;
}
});
if(!exist_l) {
window.pois[index].array_lang.push({'id_poi':id,'language':lang,'embed_content':value,'label':'','tooltip_text':'','title':'','description':'','content':'','params':''});
}
});
break;
case 'video_chroma':
array_lang['embed_content'] = {};
array_lang['params'] = {};
$('.input_lang[data-target-id="poi_embed_content"]').each(function() {
var lang = $(this).attr('data-lang');
var value = $(this).val();
var chroma_color = $('#chroma_color_'+lang).val().replace("rgb(","").replace(")","");
var chroma_tolerance = $('#chroma_tolerance_'+lang).val();
var params_l = chroma_color+','+chroma_tolerance;
array_lang['embed_content'][lang]=value;
array_lang['params'][lang]=params_l;
var exist_l = false;
jQuery.each(window.pois[index].array_lang, function(index_l,item_lang) {
if(item_lang.language==lang) {
exist_l = true;
item_lang.embed_content=value;
item_lang.params=params_l;
}
});
if(!exist_l) {
window.pois[index].array_lang.push({'id_poi':id,'language':lang,'embed_content':value,'label':'','tooltip_text':'','title':'','description':'','content':'','params':params_l});
}
});
break;
case 'text':
array_lang['embed_content'] = {};
$('.input_lang[data-target-id="poi_embed_content_html"]').each(function() {
var lang = $(this).attr('data-lang');
var value = window.poi_embed_content_html_editor_lang[lang].root.innerHTML+' border-width:'+$('#poi_border_px').val()+'px;';
array_lang['embed_content'][lang]=value;
var exist_l = false;
jQuery.each(window.pois[index].array_lang, function(index_l,item_lang) {
if(item_lang.language==lang) {
exist_l = true;
item_lang.embed_content=value;
}
});
if(!exist_l) {
window.pois[index].array_lang.push({'id_poi':id,'language':lang,'embed_content':value,'label':'','tooltip_text':'','title':'','description':'','content':'','params':''});
}
});
break;
case 'html':
array_lang['embed_content'] = {};
$('.input_lang[data-target-id="poi_embed_content_html_sc"]').each(function() {
var lang = $(this).attr('data-lang');
var value = window.poi_embed_content_html_sc_lang[lang].getValue();
array_lang['embed_content'][lang]=value;
var exist_l = false;
jQuery.each(window.pois[index].array_lang, function(index_l,item_lang) {
if(item_lang.language==lang) {
exist_l = true;
item_lang.embed_content=value;
}
});
if(!exist_l) {
window.pois[index].array_lang.push({'id_poi':id,'language':lang,'embed_content':value,'label':'','tooltip_text':'','title':'','description':'','content':'','params':''});
}
});
break;
}
switch(window.pois[index].type) {
case 'image':
case 'pdf':
case 'download':
case 'video':
case 'video360':
case 'lottie':
case 'audio':
case 'object3d':
case 'pointclouds':
case 'link':
case 'link_ext':
array_lang['content'] = {};
$('.input_lang[data-target-id="poi_content"]').each(function() {
var lang = $(this).attr('data-lang');
var value = $(this).val();
array_lang['content'][lang]=value;
var exist_l = false;
jQuery.each(window.pois[index].array_lang, function(index_l,item_lang) {
if(item_lang.language==lang) {
exist_l = true;
item_lang.content=value;
}
});
if(!exist_l) {
window.pois[index].array_lang.push({'id_poi':id,'language':lang,'embed_content':'','label':'','tooltip_text':'','title':'','description':'','content':value,'params':''});
}
});
break;
case 'google_maps':
array_lang['content'] = {};
$('.input_lang[data-target-id="poi_gm_map"]').each(function() {
var lang = $(this).attr('data-lang');
var value = $('#poi_gm_map_'+lang).val()+"|"+$('#poi_gm_street_'+lang).val();;
array_lang['content'][lang]=value;
var exist_l = false;
jQuery.each(window.pois[index].array_lang, function(index_l,item_lang) {
if(item_lang.language==lang) {
exist_l = true;
item_lang.content=value;
}
});
if(!exist_l) {
window.pois[index].array_lang.push({'id_poi':id,'language':lang,'embed_content':'','label':'','tooltip_text':'','title':'','description':'','content':value,'params':''});
}
});
break;
case 'html':
array_lang['content'] = {};
$('.input_lang[data-target-id="poi_content_html"]').each(function() {
var lang = $(this).attr('data-lang');
var value = window.html_editor_lang[lang].root.innerHTML;
array_lang['content'][lang]=value;
var exist_l = false;
jQuery.each(window.pois[index].array_lang, function(index_l,item_lang) {
if(item_lang.language==lang) {
exist_l = true;
item_lang.content=value;
}
});
if(!exist_l) {
window.pois[index].array_lang.push({'id_poi':id,'language':lang,'embed_content':'','label':'','tooltip_text':'','title':'','description':'','content':value,'params':''});
}
});
break;
case 'html_sc':
array_lang['content'] = {};
$('.input_lang[data-target-id="poi_content_html_sc"]').each(function() {
var lang = $(this).attr('data-lang');
var value = window.poi_content_html_sc_lang[lang].getValue();
if (!value.startsWith("<div")) {
value = "<div>" + value + "</div>";
}
array_lang['content'][lang]=decodeURIComponent(value);
var exist_l = false;
jQuery.each(window.pois[index].array_lang, function(index_l,item_lang) {
if(item_lang.language==lang) {
exist_l = true;
item_lang.content=value;
}
});
if(!exist_l) {
window.pois[index].array_lang.push({'id_poi':id,'language':lang,'embed_content':'','label':'','tooltip_text':'','title':'','description':'','content':value,'params':''});
}
});
break;
case 'form':
array_lang['content'] = {};
$('.input_lang[data-target-id="form_title"]').each(function() {
var lang = $(this).attr('data-lang');
var content_lang = [{},{},{},{},{},{},{},{},{},{},{}];
if($('.input_lang[data-target-id="form_title"][data-lang="'+lang+'"]').val()!='') {
content_lang[0]['title'] = $('.input_lang[data-target-id="form_title"][data-lang="'+lang+'"]').val();
} else {
content_lang[0]['title'] = $('#form_title').val();
}
if($('.input_lang[data-target-id="form_button"][data-lang="'+lang+'"]').val()!='') {
content_lang[0]['button'] = $('.input_lang[data-target-id="form_button"][data-lang="'+lang+'"]').val();
} else {
content_lang[0]['button'] = $('#form_button').val();
}
if($('.input_lang[data-target-id="form_response"][data-lang="'+lang+'"]').val()!='') {
content_lang[0]['response'] = $('.input_lang[data-target-id="form_response"][data-lang="'+lang+'"]').val();
} else {
content_lang[0]['response'] = $('#form_response').val();
}
if($('.input_lang[data-target-id="form_description"][data-lang="'+lang+'"]').val()!='') {
content_lang[0]['description'] = $('.input_lang[data-target-id="form_description"][data-lang="'+lang+'"]').val();
} else {
content_lang[0]['description'] = $('#form_description').val();
}
content_lang[0]['privacy_policy'] = $('#form_privacy_policy').is(':checked');
content_lang[0]['send_email'] = $('#form_send_email').is(':checked');
content_lang[0]['email'] = $('#form_email').val();
content_lang[0]['background'] = $('#form_background').val();
content_lang[0]['color'] = $('#form_color').val();
content_lang[0]['background_button'] = $('#form_background_button').val();
content_lang[0]['color_button'] = $('#form_color_button').val();
for(var i=1;i<=10;i++) {
content_lang[i]['enabled'] = $('#form_field_'+i).is(':checked');
content_lang[i]['required'] = $('#form_field_required_'+i).is(':checked');
content_lang[i]['type'] = $('#form_field_type_'+i+' option:selected').attr('id');
if($('.input_lang[data-target-id="form_field_label_'+i+'"][data-lang="'+lang+'"]').val()!='') {
content_lang[i]['label'] = $('.input_lang[data-target-id="form_field_label_'+i+'"][data-lang="'+lang+'"]').val();
} else {
content_lang[i]['label'] = $('#form_field_label_'+i).val();
}
}
array_lang['content'][lang]=JSON.stringify(content_lang);
var exist_l = false;
jQuery.each(window.pois[index].array_lang, function(index_l,item_lang) {
if(item_lang.language==lang) {
exist_l = true;
item_lang.content=JSON.stringify(content_lang);
}
});
if(!exist_l) {
window.pois[index].array_lang.push({'id_poi':id,'language':lang,'embed_content':'','label':'','tooltip_text':'','title':'','description':'','content':JSON.stringify(content_lang),'params':''});
}
});
break;
case 'callout':
var tmp_param = window.pois[index].params_d;
tmp_param = JSON.parse(tmp_param);
array_lang['params'] = {};
$('.input_lang[data-target-id="callout_title"]').each(function() {
var lang = $(this).attr('data-lang');
if($(this).val()!='') {
tmp_param.title = $(this).val();
} else {
tmp_param.title = $('#callout_title').val();
}
if($('.input_lang[data-target-id="callout_description"][data-lang="'+lang+'"]').val()!='') {
tmp_param.description = $('.input_lang[data-target-id="callout_description"][data-lang="'+lang+'"]').val();
} else {
tmp_param.description = $('#callout_description').val();
}
array_lang['params'][lang]=JSON.stringify(tmp_param);
var exist_l = false;
jQuery.each(window.pois[index].array_lang, function(index_l,item_lang) {
if(item_lang.language==lang) {
exist_l = true;
item_lang.params=JSON.stringify(tmp_param);
}
});
if(!exist_l) {
window.pois[index].array_lang.push({'id_poi':id,'language':lang,'embed_content':'','label':'','tooltip_text':'','title':'','description':'','content':'','params':JSON.stringify(tmp_param)});
}
});
break;
}
window.pois[index].target = target;
window.pois[index].content = content;
window.pois[index].params = params;
window.pois[index].title = c_title;
window.pois[index].description = c_description;
window.pois[index].view_type = view_type;
window.pois[index].box_pos = box_pos;
window.pois[index].box_max_width = box_max_width;
window.pois[index].box_maximize = box_maximize;
window.pois[index].box_background = box_background;
window.pois[index].box_color = box_color;
window.pois[index].auto_close = auto_close;
window.pois[index].id_icon_library = id_icon_library;
window.pois[index].style = style;
window.pois[index].icon_type = icon_type;
window.pois[index].sound = sound;
window.pois[index].background = background;
window.pois[index].color = color;
window.pois[index].label = label;
window.pois[index].css_class = css_class;
window.pois[index].tooltip_type = tooltip_type;
window.pois[index].tooltip_visibility = tooltip_visibility;
window.pois[index].tooltip_background = tooltip_background;
window.pois[index].tooltip_color = tooltip_color;
window.pois[index].tooltip_text = tooltip_text;
window.pois[index].embed_content = embed_content;
window.pois[index].embed_video_autoplay = embed_video_autoplay;
window.pois[index].embed_video_loop = embed_video_loop;
window.pois[index].embed_gallery_autoplay = embed_gallery_autoplay;
window.pois[index].embed_video_muted = embed_video_muted;
window.pois[index].schedule = schedule;
window.pois[index].song_bg_volume = song_bg_volume;
window.pois_initial[index] = {...window.pois[index]};
if($('#id_poi_autoopen').is(':checked')) {
window.id_poi_autoopen = id;
} else {
if(window.id_poi_autoopen==id) {
window.id_poi_autoopen = '';
}
}
change_exclude_apply_all('poi');
save_poi_edit(id,type,content,c_title,c_description,target,view_type,box_pos,box_max_width,box_maximize,song_bg_volume,params,auto_close,box_background,box_color);
save_poi_style(id,color,background,icon,style,id_icon_library,label,tooltip_type,tooltip_text,css_class,embed_content,embed_video_autoplay,embed_video_loop,embed_video_muted,embed_gallery_autoplay,window.pois[index].embed_type,window.pois[index].animation,icon_type,window.pois[index].embed_params,tooltip_visibility,tooltip_background,tooltip_color,sound,array_lang);
save_poi_schedule(id,schedule);
$('.rooms_slider').removeClass('disabled');
$('.rooms_slider').show();
$(window).trigger('resize');
$('#btn_add_poi').removeClass('disabled');
$('#btn_list_hs').removeClass('disabled');
$('#btn_switch_to_marker').removeClass('disabled');
$('#btn_preview_modal').removeClass('disabled');
$('#btn_toggle_fullscreen').removeClass('disabled');
$('.rooms_view_sel').removeClass('disabled');
$('.icon_visible_view').removeClass('disabled');
var yaw = parseFloat(window.pois[index].yaw);
var pitch = parseFloat(window.pois[index].pitch);
window.viewer.lookAt(pitch,yaw,100,200);
$('.custom-hotspot-content').css('opacity',1);
$('.poi_embded_helper').css({'opacity':0,'pointer-events':'none'});
$('.poi_embded_move').css({'opacity':0,'pointer-events':'none'});
$('.poi_embed').css({'opacity':1,'pointer-events':'initial'});
$('#confirm_edit').hide();
if(window.pois[index].embed_type!='') {
render_poi(id,index);
}
if(window.pois[index].type=='callout') {
close_callout(id);
}
}
window.exit_edit_poi = function (id,index) {
window.pois[index] = {...window.pois_initial[index]};
window.is_editing = false;
render_poi(id,index);
$('.rooms_slider').removeClass('disabled');
$('.rooms_slider').show();
$(window).trigger('resize');
$('#btn_add_poi').removeClass('disabled');
$('#btn_list_hs').removeClass('disabled');
$('#btn_switch_to_marker').removeClass('disabled');
$('#btn_preview_modal').removeClass('disabled');
$('#btn_toggle_fullscreen').removeClass('disabled');
$('.rooms_view_sel').removeClass('disabled');
$('.icon_visible_view').removeClass('disabled');
var yaw = parseFloat(window.pois[index].yaw);
var pitch = parseFloat(window.pois[index].pitch);
window.currentYaw = yaw;
window.currentPitch = pitch;
window.viewer.lookAt(pitch,yaw,100,200);
$('.custom-hotspot-content').css('opacity',1);
$('.hotspot-embed').css('opacity',1);
$('#confirm_edit').hide();
if(window.pois[index].type=='callout') {
close_callout(id);
}
}
function get_first_poi_embed_gallery_image(id) {
var image = '';
$.ajax({
url: "ajax/get_first_poi_embed_gallery_image.php",
type: "POST",
data: {
id_poi: id
},
async: false,
success: function (rsp) {
image = rsp;
}
});
if(image!='') image='../viewer/gallery/'+image;
return image;
}
function hotspot_measure(hotSpotDiv, args) {
var div = document.createElement('div');
div.id = 'measure_'+args.id+'_'+args.dir;
div.classList.add('measure_points');
div.classList.add('noselect');
div.innerHTML = '';
div.style.opacity = 0;
div.style.width = '30px';
div.style.height = '30px';
div.style.border = '1px solid red';
div.style.borderRadius = '50%';
hotSpotDiv.classList.add('noselect');
hotSpotDiv.style.pointerEvents = 'none';
div.setAttribute('yaw',args.yaw);
div.setAttribute('pitch',args.pitch);
hotSpotDiv.appendChild(div);
}
function hotspot_p_callout(hotSpotDiv, args) {
hotSpotDiv.classList.add('hotspot_'+args.id);
hotSpotDiv.setAttribute('visible_multiview_ids',args.visible_multiview_ids);
hotSpotDiv.classList.add('noselect');
hotSpotDiv.style.zIndex = args.zIndex;
var json_callout = args.params;
try {
args_callout[args.id] = JSON.parse(json_callout);
} catch (e) {
return;
}
var tmp = args_callout[args.id].title_bg_color;
tmp = tmp.replace('rgba(','').replace(')','');
tmp = tmp.split(',');
if(tmp[3]==0) {
var title_margin = args_callout[args.id].title_margin+'px 0px';
} else {
var title_margin = args_callout[args.id].title_margin+'px';
}
switch(args_callout[args.id].dir) {
case 'left':
args_callout[args.id].rotate = args_callout[args.id].rotate + 180;
var callout_html = '<div id="callout_'+args.id+'" class="callout" style="position: absolute; z-index: 2002; overflow: visible; background-color: '+args_callout[args.id].main_color+'; border: 0px solid rgb(0, 0, 0); border-radius: 10px; opacity: 1; cursor: pointer; pointer-events: initial; width: 10px; height: 10px; transform-origin: 50% 50%; transform: translateZ(0px) translate(0px, 0px) translate(-5px, -5px) rotate(315deg) translate(0px) scale(1, 1) translate(0px);">\n' +
' <div id="callout_pointer_'+args.id+'" class="callout_pointer" style="position: absolute; z-index: 3001; overflow: visible; opacity: 1; cursor: default; pointer-events: none; background-image: none; border: 2px solid '+args_callout[args.id].main_color+'; border-radius: 20px; width: 24px; height: 24px; transform: translateZ(1000000000000px) translate(-9px, -9px) translate(0px, 0px) rotate(0deg) translate(0px, 0px);"></div>\n' +
' <div id="callout_line_'+args.id+'" class="callout_line" style="position: absolute; z-index: 3001; overflow: visible; opacity: 1; cursor: default; pointer-events: none; background-image: none; background-color: '+args_callout[args.id].main_color+'; border: 0px solid rgb(0, 0, 0); border-radius: 0px; width: 2px; height: 0px; transform: translateZ(1000000000000px) translate(4px, 5px) translate(0px, 0px) rotate(0deg) translate(0px, 0px);">\n' +
' <div id="callout_content_'+args.id+'" class="callout_content" style="position: absolute; z-index: 3001; overflow: hidden; opacity: 1; cursor: default; pointer-events: none; background-color: '+args_callout[args.id].content_bg_color+'; background-image: none; border-style: solid; border-color: '+args_callout[args.id].main_color+'; border-width: 0px 2px 0px 0px; border-radius: 0px; width: 0px; height: 0px; transform: translateZ(1000000000000px) translate(0px, 0px) translate(0px, 0px) rotate(-300deg) translate(0px, 0px);">\n' +
' <div id="callout_title_'+args.id+'" class="callout_title" style="margin-top: 5px;font-size: '+args_callout[args.id].title_font_size+'px;position: absolute; z-index: 3001; overflow: visible; opacity: 1; cursor: default; pointer-events: none; color: rgb(0, 0, 0); width: 300px; height: 49px; transform: translateZ(1000000000000px) translate(-104px, 0px) translate(47px, -24.5px) rotate(0deg) translate(-47px, 24.5px); background-image: none;">\n' +
' <div style="position: absolute; top: 0px; right: 0px; transform-origin: 0px 0px; transform: scale(1); width: 100%; height: 100%; line-height: normal; color: rgb(0, 0, 0); pointer-events: none; visibility: visible;">\n' +
' <div class="callout_title_bg" style="float:right;white-space: nowrap; background-color: '+args_callout[args.id].title_bg_color+';line-height: '+args_callout[args.id].title_font_size+'px;">\n' +
' <div class="callout_title_text" style="margin: '+title_margin+';color:'+args_callout[args.id].title_font_color+';text-align:right">'+args_callout[args.id].title+'<span style="width:0;height:0;"></span></div>\n' +
' </div>\n' +
' </div>\n' +
' </div>\n' +
' <div id="callout_description_'+args.id+'" class="callout_description" style="font-size: '+args_callout[args.id].description_font_size+'px;position: absolute; z-index: 3001; overflow: visible; opacity: 1; cursor: default; pointer-events: none; color: rgb(0, 0, 0); width: 300px; height: 28px; transform: translateZ(1000000000000px) translate(-310px, -28px) translate(150px, 14px) rotate(0deg) translate(-150px, -14px); background-image: none;">\n' +
' <div style="position: absolute; top: 0px; left: 0px; transform-origin: 0px 0px; transform: scale(1); width: 100%; height: 100%; line-height: normal; color: rgb(0, 0, 0); pointer-events: none; visibility: visible;">\n' +
' <div style="position:absolute;width:100%;overflow:hidden;">\n' +
' <div class="callout_description_text" style="margin:10px 0px 0px 0px;color:'+args_callout[args.id].description_font_color+';text-align:right">'+args_callout[args.id].description+'<span style="width:0;height:0;"></span></div>\n' +
' </div>\n' +
' </div>\n' +
' </div>\n' +
' </div>\n' +
' </div>\n' +
' </div>';
break;
case 'right':
var callout_html = '<div id="callout_'+args.id+'" class="callout" style="position: absolute; z-index: 3001; overflow: visible; background-color: '+args_callout[args.id].main_color+'; border: 0px solid rgb(0, 0, 0); border-radius: 10px; opacity: 1; cursor: pointer; pointer-events: initial; width: 10px; height: 10px; transform-origin: 50% 50%; transform: translateZ(0px) translate(0px, 0px) translate(-5px, -5px) rotate(45deg) translate(0px) scale(1, 1) translate(0px);">\n' +
' <div id="callout_pointer_'+args.id+'" class="callout_pointer" style="position: absolute; z-index: 3001; overflow: visible; opacity: 1; cursor: default; pointer-events: none; background-image: none; border: 2px solid '+args_callout[args.id].main_color+'; border-radius: 20px; width: 24px; height: 24px; transform: translateZ(1000000000000px) translate(-9px, -9px) translate(0px, 0px) rotate(0deg) translate(0px, 0px);"></div>\n' +
' <div id="callout_line_'+args.id+'" class="callout_line" style="position: absolute; z-index: 3001; overflow: visible; opacity: 1; cursor: default; pointer-events: none; background-image: none; background-color: '+args_callout[args.id].main_color+'; border: 0px solid rgb(0, 0, 0); border-radius: 0px; width: 2px; height: 0px; transform: translateZ(1000000000000px) translate(4px, 5px) translate(0px, 0px) rotate(0deg) translate(0px, 0px);">\n' +
' <div id="callout_content_'+args.id+'" class="callout_content" style="position: absolute; z-index: 3001; overflow: hidden; opacity: 1; cursor: default; pointer-events: none; background-color: '+args_callout[args.id].content_bg_color+'; background-image: none; border-style: solid; border-color: '+args_callout[args.id].main_color+'; border-width: 0px 0px 0px 2px; border-radius: 0px; width: 0px; height: 0px; transform: translateZ(1000000000000px) translate(0px, 0px) translate(0px, 0px) rotate(-45deg) translate(0px, 0px);">\n' +
' <div id="callout_title_'+args.id+'" class="callout_title" style="margin-top: 5px;font-size: '+args_callout[args.id].title_font_size+'px;position: absolute; z-index: 3001; overflow: visible; opacity: 1; cursor: default; pointer-events: none; color: rgb(0, 0, 0); width: 158px; height: 49px; transform: translateZ(1000000000000px) translate(10px, 0px) translate(-79px, -24.5px) rotate(0deg) translate(79px, 24.5px); background-image: none;">\n' +
' <div style="position: absolute; top: 0px; left: 0px; transform-origin: 0px 0px; transform: scale(1); width: 100%; height: 100%; line-height: normal; color: rgb(0, 0, 0); pointer-events: none; visibility: visible;">\n' +
' <div class="callout_title_bg" style="position: absolute; white-space: nowrap; background-color: '+args_callout[args.id].title_bg_color+';line-height: '+args_callout[args.id].title_font_size+'px;">\n' +
' <div class="callout_title_text" style="margin: '+title_margin+';color:'+args_callout[args.id].title_font_color+';">'+args_callout[args.id].title+'<span style="width:0;height:0;"></span></div>\n' +
' </div>\n' +
' </div>\n' +
' </div>\n' +
' <div id="callout_description_'+args.id+'" class="callout_description" style="font-size: '+args_callout[args.id].description_font_size+'px;position: absolute; z-index: 3001; overflow: visible; opacity: 1; cursor: default; pointer-events: none; color: rgb(0, 0, 0); width: 300px; height: 103px; transform: translateZ(1000000000000px) translate(10px, -103px) translate(-150px, 51.5px) rotate(0deg) translate(150px, -51.5px); background-image: none;">\n' +
' <div style="position: absolute; top: 0px; left: 0px; transform-origin: 0px 0px; transform: scale(1); width: 100%; height: 100%; line-height: normal; color: rgb(0, 0, 0); pointer-events: none; visibility: visible;">\n' +
' <div style="position:absolute;width:100%;overflow:hidden;">\n' +
' <div class="callout_description_text" style="margin:10px 10px 0px 0px;color:'+args_callout[args.id].description_font_color+';">'+args_callout[args.id].description+'<span style="width:0;height:0;"></span></div>\n' +
' </div>\n' +
' </div>\n' +
' </div>\n' +
' </div>\n' +
' </div>\n' +
' </div>';
break;
}
hotSpotDiv.innerHTML = callout_html;
}
function open_callout(id) {
var callout = document.getElementById('callout_'+id);
var callout_pointer = document.getElementById('callout_pointer_'+id);
var callout_line = document.getElementById('callout_line_'+id);
var callout_content = document.getElementById('callout_content_'+id);
var callout_title = document.getElementById('callout_title_'+id);
var callout_description = document.getElementById('callout_description_'+id);
callout.classList.add('callout_open');
callout_pointer.classList.remove('callout_blink');
var description_y = callout_title.getElementsByClassName("callout_title_bg")[0].offsetHeight;
switch(args_callout[id].dir) {
case 'left':
callout_line.style.height = args_callout[id].line_size+'px';
callout_line.style.transform = 'translateZ(1000000000000px) translate(4px, -'+(args_callout[id].line_size-5)+'px) translate(0px, '+(args_callout[id].line_size/2)+'px) rotate('+(args_callout[id].rotate-315)+'deg) translate(0px, -'+(args_callout[id].line_size/2)+'px)';
callout_content.style.width = args_callout[id].content_width+'px';
callout_content.style.height = args_callout[id].content_height+'px';
callout_content.style.transform = 'translateZ(1000000000000px) translate(-'+args_callout[id].content_width+'px, -'+(args_callout[id].content_height/2)+'px) translate('+(args_callout[id].content_width/2)+'px, 0px) rotate(-'+args_callout[id].rotate+'deg) translate(-'+(args_callout[id].content_width/2)+'px, 0px)';
callout_title.style.width = (args_callout[id].content_width-10)+'px';
callout_title.style.transform = 'translateZ(1000000000000px) translate(0px, 0px) translate(150px, -24.5px) rotate(0deg) translate(-150px, 24.5px)';
callout_description.style.width = (args_callout[id].content_width-10)+'px';
callout_description.style.transform = 'translateZ(1000000000000px) translate(0px, '+description_y+'px) translate(150px, 0px) rotate(0deg) translate(-150px, 0px)';
break;
case 'right':
callout_line.style.height = args_callout[id].line_size+'px';
callout_line.style.transform = 'translateZ(1000000000000px) translate(4px, -'+(args_callout[id].line_size-5)+'px) translate(0px, '+(args_callout[id].line_size/2)+'px) rotate('+(args_callout[id].rotate-45)+'deg) translate(0px, -'+(args_callout[id].line_size/2)+'px)';
callout_content.style.width = args_callout[id].content_width+'px';
callout_content.style.height = args_callout[id].content_height+'px';
callout_content.style.transform = 'translateZ(1000000000000px) translate(0px, -'+(args_callout[id].content_height/2)+'px) translate(-'+(args_callout[id].content_width/2)+'px, 0px) rotate(-'+args_callout[id].rotate+'deg) translate('+(args_callout[id].content_width/2)+'px, 0px)';
callout_description.style.width = (args_callout[id].content_width-10)+'px';
callout_description.style.transform = 'translateZ(1000000000000px) translate(10px, '+description_y+'px) translate(-150px, 0px) rotate(0deg) translate(150px, 0px)';
break;
}
}
function close_callout(id) {
var callout = document.getElementById('callout_'+id);
callout.classList.remove('callout_open');
var callout_pointer = document.getElementById('callout_pointer_'+id);
callout_pointer.classList.add('callout_blink');
var callout_line = document.getElementById('callout_line_'+id);
callout_line.style.height = '0px';
callout_line.style.transform = 'translateZ(1000000000000px) translate(4px, 5px) translate(0px, 0px) rotate(0deg) translate(0px, 0px)';
var callout_content = document.getElementById('callout_content_'+id);
callout_content.style.width = '0px';
callout_content.style.height = '0px';
callout_content.style.transform = 'translateZ(1000000000000px) translate(0px, 0px) translate(0px, 0px) rotate(-45deg) translate(0px, 0px)';
var callout_description = document.getElementById('callout_description_'+id);
callout_description.style.transform = 'translateZ(1000000000000px) translate(10px, -103px) translate(-150px, 51.5px) rotate(0deg) translate(150px, -51.5px)';
}
window.change_callout_params = function() {
var title_default = $('#callout_title').val();
var description_default = $('#callout_description').val();
if(window.selected_language=='' || window.selected_language==window.default_language) {
var title = $('#callout_title').val();
var description = $('#callout_description').val();
} else {
var title = $('.input_lang[data-target-id="callout_title"][data-lang="'+window.selected_language+'"]').val();
var description = $('.input_lang[data-target-id="callout_description"][data-lang="'+window.selected_language+'"]').val();
}
var dir = $('#callout_dir option:selected').attr('id');
var title_font_size = $('#callout_title_font_size').val();
var title_margin = $('#callout_title_margin').val();
var description_font_size = $('#callout_description_font_size').val();
var main_color = $('#callout_main_color').val();
var content_bg_color = $('#callout_content_bg_color').val();
var title_font_color = $('#callout_title_font_color').val();
var title_bg_color = $('#callout_title_bg_color').val();
var description_font_color = $('#callout_description_font_color').val();
var content_height = $('#callout_content_height').val();
var content_width = $('#callout_content_width').val();
var line_size = $('#callout_line_size').val();
var rotate = $('#callout_rotate').val();
var open = $('#callout_open option:selected').attr('id');
var json = window.pois[poi_index_edit].params;
var array = JSON.parse(json);
array.title = title;
array.description = description;
array.dir = dir;
array.title_font_size = title_font_size;
array.title_margin = title_margin;
array.description_font_size = description_font_size;
array.main_color = main_color;
array.content_bg_color = content_bg_color;
array.title_font_color = title_font_color;
array.title_bg_color = title_bg_color;
array.description_font_color = description_font_color;
array.content_height = parseInt(content_height);
array.content_width = parseInt(content_width);
array.line_size = parseInt(line_size);
array.rotate = parseInt(rotate);
array.open = open;
window.pois[poi_index_edit].params = JSON.stringify(array);
var array_d = JSON.parse(json);
array_d.title = title_default;
array_d.description = description_default;
array_d.dir = dir;
array_d.title_font_size = title_font_size;
array_d.title_margin = title_margin;
array_d.description_font_size = description_font_size;
array_d.main_color = main_color;
array_d.content_bg_color = content_bg_color;
array_d.title_font_color = title_font_color;
array_d.title_bg_color = title_bg_color;
array_d.description_font_color = description_font_color;
array_d.content_height = parseInt(content_height);
array_d.content_width = parseInt(content_width);
array_d.line_size = parseInt(line_size);
array_d.rotate = parseInt(rotate);
array_d.open = open;
window.pois[poi_index_edit].params_d = JSON.stringify(array_d);
render_poi(poi_id_edit,poi_index_edit);
open_callout(poi_id_edit);
}
function hotspot_p(hotSpotDiv, args) {
hotSpotDiv.classList.add('hotspot_'+args.id);
hotSpotDiv.setAttribute('visible_multiview_ids',args.visible_multiview_ids);
hotSpotDiv.classList.add('noselect');
if(args.what=='marker') {
hotSpotDiv.style.opacity = 0.3;
}
hotSpotDiv.style.zIndex = args.zIndex;
var div_wrapper = document.createElement('div');
div_wrapper.classList.add('div_poi_wrapper');
if(args.animation!='none') {
div_wrapper.classList.add('animate__animated');
div_wrapper.classList.add('animate__slow');
div_wrapper.classList.add('animate__'+args.animation);
div_wrapper.classList.add('animate__infinite');
}
var lottie = false;
var style_t = parseInt(args.style);
if(style_t==1) {
var icon_type = 'round';
} else {
var icon_type = args.icon_type;
}
switch(icon_type) {
case 'square':
div_wrapper.style.borderRadius = '3px';
break;
case 'round_outline':
div_wrapper.style.borderWidth = '2px';
div_wrapper.style.borderStyle = 'solid';
div_wrapper.style.borderColor = args.color;
break;
case 'square_outline':
div_wrapper.style.borderRadius = '3px';
div_wrapper.style.borderWidth = '2px';
div_wrapper.style.borderStyle = 'solid';
div_wrapper.style.borderColor = args.color;
break;
}
var label = args.label;
if(window.is_editing) {
if($('#poi_label').is(':visible')) {
label = $('#poi_label').val();
} else {
$('.input_lang[data-target-id="poi_label"]').each(function() {
if($(this).is(':visible')) {
label = $(this).val();
}
});
}
}
switch (style_t) {
case 0:
div_wrapper.style.background = args.background;
var i = document.createElement('i');
i.className = args.icon;
i.style = "margin: 0 auto;vertical-align:middle;font-size:24px;color:"+args.color;
div_wrapper.appendChild(i);
break;
case 1:
var ext = args.img_icon_library.split('.').pop().toLowerCase();
if(ext=='json') {
lottie = true;
hotSpotDiv.classList.add('lottie_icon');
var div = document.createElement('div');
div.innerHTML = '<div id="lottie_p_'+args.id+'" style="height:50px;width:50px;vertical-align:middle"></div>';
hotSpotDiv.appendChild(div);
var id_vt_library = args.id_vt_library;
if(window.s3_enabled==1 && id_vt_library!='') {
var image_url = window.s3_url+'viewer/icons/'+args.img_icon_library+'?s3=1';
} else {
var image_url = '../viewer/icons/'+args.img_icon_library;
}
bodymovin.loadAnimation({
container: document.getElementById('lottie_p_'+args.id),
renderer: 'svg',
loop: true,
autoplay: true,
path: image_url,
rendererSettings: {
progressiveLoad: true,
}
});
} else {
var img = document.createElement('img');
img.src = args.base64_icon_library;
img.style = "width:50px";
img.draggable = false;
div_wrapper.appendChild(img);
}
break;
case 2:
div_wrapper.style.background = args.background;
var i = document.createElement('i');
i.className = args.icon;
i.style = "margin: 0 auto;vertical-align:middle;font-size:24px;color:"+args.color;
div_wrapper.appendChild(i);
var span = document.createElement('span');
span.innerHTML = ' '+label.toUpperCase();
span.style = "vertical-align:middle;color:"+args.color;
div_wrapper.appendChild(span);
break;
case 3:
div_wrapper.style.background = args.background;
var span = document.createElement('span');
span.innerHTML = label.toUpperCase()+' ';
span.style = "vertical-align:middle;color:"+args.color;
div_wrapper.appendChild(span);
var i = document.createElement('i');
i.className = args.icon;
i.style = "margin: 0 auto;vertical-align:middle;font-size:24px;color:"+args.color;
div_wrapper.appendChild(i);
break;
case 4:
div_wrapper.style.background = args.background;
var span = document.createElement('span');
span.innerHTML = label.toUpperCase();
span.style = "font-size:14px;vertical-align:middle;color:"+args.color;
div_wrapper.appendChild(span);
break;
}
if(lottie==false) hotSpotDiv.appendChild(div_wrapper);
}
function hotspot_m(hotSpotDiv, args) {
hotSpotDiv.classList.add('custom-tooltip');
hotSpotDiv.classList.add('hotspot_'+args.id);
hotSpotDiv.classList.add('noselect');
hotSpotDiv.setAttribute('visible_multiview_ids',args.visible_multiview_ids);
var div_wrapper = document.createElement('div');
div_wrapper.classList.add('div_marker_wrapper');
if(args.animation!='none') {
div_wrapper.classList.add('animate__animated');
div_wrapper.classList.add('animate__slow');
div_wrapper.classList.add('animate__'+args.animation);
div_wrapper.classList.add('animate__infinite');
}
hotSpotDiv.style.zIndex = args.zIndex;
var show_room_t = parseInt(args.show_room);
if(show_room_t==4 || show_room_t==5) {
var icon_type = 'round';
} else {
var icon_type = args.icon_type;
}
switch(icon_type) {
case 'square':
div_wrapper.style.borderRadius = '3px';
break;
case 'round_outline':
div_wrapper.style.borderWidth = '2px';
div_wrapper.style.borderStyle = 'solid';
div_wrapper.style.borderColor = args.color;
break;
case 'square_outline':
div_wrapper.style.borderRadius = '3px';
div_wrapper.style.borderWidth = '2px';
div_wrapper.style.borderStyle = 'solid';
div_wrapper.style.borderColor = args.color;
break;
}
var lottie = false;
switch (show_room_t) {
case 0:
div_wrapper.style.background = args.background;
var i = document.createElement('i');
i.className = args.icon+" marker_img_"+args.id_room_target;
i.style = "margin: 0 auto;vertical-align:middle;font-size:24px;color:"+args.color;
div_wrapper.appendChild(i);
break;
case 1:
div_wrapper.style.background = args.background;
var i = document.createElement('i');
i.className = args.icon+" marker_img_"+args.id_room_target;
i.style = "margin: 0 auto;vertical-align:middle;font-size:24px;color:"+args.color;
div_wrapper.appendChild(i);
var span = document.createElement('span');
span.innerHTML = ' '+args.name_room_target.toUpperCase();
span.style = "vertical-align:middle;color:"+args.color;
div_wrapper.appendChild(span);
break;
case 2:
div_wrapper.style.background = args.background;
var span = document.createElement('span');
span.innerHTML = args.name_room_target.toUpperCase()+' ';
span.style = "vertical-align:middle;color:"+args.color;
div_wrapper.appendChild(span);
var i = document.createElement('i');
i.className = args.icon+" marker_img_"+args.name_room_target;
i.style = "margin: 0 auto;vertical-align:middle;font-size:24px;color:"+args.color;
div_wrapper.appendChild(i);
break;
case 3:
div_wrapper.style.background = args.background;
var span = document.createElement('span');
span.innerHTML = args.name_room_target.toUpperCase();
span.style = "font-size:14px;vertical-align:middle;color:"+args.color;
div_wrapper.appendChild(span);
break;
case 4:
var ext = args.img_icon_library.split('.').pop().toLowerCase();
if(ext=='json') {
lottie = true;
hotSpotDiv.classList.add('lottie_icon');
var div = document.createElement('div');
div.innerHTML = '<div id="lottie_m_'+args.id+'" style="height:50px;width:50px;vertical-align:middle"></div>';
hotSpotDiv.appendChild(div);
var id_vt_library = args.id_vt_library;
if(window.s3_enabled==1 && id_vt_library!='') {
var image_url = window.s3_url+'viewer/icons/'+args.img_icon_library+'?s3=1';
} else {
var image_url = '../viewer/icons/'+args.img_icon_library;
}
bodymovin.loadAnimation({
container: document.getElementById('lottie_m_'+args.id),
renderer: 'svg',
loop: true,
autoplay: true,
path: image_url,
rendererSettings: {
progressiveLoad: true,
}
});
} else {
var img = document.createElement('img');
img.src = args.base64_icon_library;
img.style = "width:50px";
img.draggable = false;
div_wrapper.appendChild(img);
}
break;
case 5:
var image = args.base64_marker_preview;
var div = document.createElement('div');
div.classList.add('marker_preview');
div.style = 'width:48px;height:48px;border-radius:48px;background-image: url('+image+');background-size: cover;background-position: center;';
div_wrapper.appendChild(div);
break;
}
if(lottie==false) hotSpotDiv.appendChild(div_wrapper);
}
function get_pois(id_room,image,id_poi_add) {
$.ajax({
url: "ajax/get_pois.php",
type: "POST",
data: {
id_room: id_room,
edit_room: 0
},
async: true,
success: function (json) {
var rsp = JSON.parse(json);
window.pois = rsp.pois;
parse_hs_list(window.pois,'poi');
var array_room = rsp.room;
window.id_poi_autoopen = array_room.id_poi_autoopen;
window.pois_initial = JSON.parse(JSON.stringify(window.pois));
initialize_pano_pois(id_room,image,id_poi_add,array_room);
}
});
}
window.get_pois_edit_rooms = function(id_room) {
$.ajax({
url: "ajax/get_pois.php",
type: "POST",
data: {
id_room: id_room,
edit_room: 1
},
async: false,
success: function (json) {
var rsp = JSON.parse(json);
window.pois = rsp.pois;
}
});
}
function get_measures(id_room,image,id_measure_add) {
$.ajax({
url: "ajax/get_measures.php",
type: "POST",
data: {
id_room: id_room
},
async: true,
success: function (json) {
var rsp = JSON.parse(json);
window.measures = rsp.measures;
parse_hs_list(window.measures,'measure');
var array_room = rsp.room;
window.measures_initial = JSON.parse(JSON.stringify(window.measures));
initialize_pano_measures(id_room,image,array_room,id_measure_add);
}
});
}
function parse_hs_list(objects,type) {
var html = '';
var count = 0;
$.each(objects,function(index,hs) {
var hs_label = '';
if(type=='measure') {
count++;
hs_label += '<i class="fas fa-arrows-alt-h"></i> '+window.backend_labels.measure_label;
var hs_title = hs_label;
html += '<button id="hs_'+hs.id+'" onclick="click_hs('+hs.id+',\''+type+'\');" type="button" class="list-group-item list-group-item-action"><span class="badge badge-light badge-pill">'+(index+1)+'</span> <span class="hs_title">'+hs_title+'</span></button>';
} else {
if(hs.what==type) {
count++;
switch(type) {
case 'marker':
switch(hs.embed_type) {
case 'selection':
hs_label += '<i class="far fa-square"></i> <i class="fas fa-caret-right"></i> ';
break;
default:
hs_label += '<i class="fas fa-info-circle"></i> <i class="fas fa-caret-right"></i> ';
break;
}
var hs_title = hs_label+' '+hs.name_room_target;
break;
case 'poi':
switch(hs.embed_type) {
case 'image':
hs_label += '<i class="fas fa-image"></i> <i class="fas fa-caret-right"></i> ';
break;
case 'video':
hs_label += '<i class="fab fa-youtube"></i> <i class="fas fa-caret-right"></i> ';
break;
case 'video_transparent':
case 'video_chroma':
hs_label += '<i class="fas fa-video"></i> <i class="fas fa-caret-right"></i> ';
break;
case 'object3d':
hs_label += '<i class="fas fa-cube"></i> <i class="fas fa-caret-right"></i> ';
break;
case 'gallery':
hs_label += '<i class="fas fa-images"></i> <i class="fas fa-caret-right"></i> ';
break;
case 'link':
hs_label += '<i class="fas fa-external-link-alt"></i> <i class="fas fa-caret-right"></i> ';
break;
case 'text':
hs_label += '<i class="fas fa-heading"></i> <i class="fas fa-caret-right"></i> ';
break;
case 'html':
hs_label += '<i class="fas fa-code"></i> <i class="fas fa-caret-right"></i> ';
break;
case 'selection':
hs_label += '<i class="far fa-square"></i> <i class="fas fa-caret-right"></i> ';
break;
default:
hs_label += '<i class="fas fa-info-circle"></i> <i class="fas fa-caret-right"></i> ';
break;
}
switch(hs.type) {
case 'image':
hs_label += '<i class="fas fa-image"></i> '+window.backend_labels.image;
break;
case 'gallery':
hs_label += '<i class="fas fa-images"></i> '+window.backend_labels.image_gallery;
break;
case 'video':
hs_label += '<i class="fab fa-youtube"></i> '+window.backend_labels.video;
break;
case 'audio':
hs_label += '<i class="fas fa-music"></i> '+window.backend_labels.audio;
break;
case 'video360':
hs_label += '<i class="fas fa-video"></i> '+window.backend_labels.video360;
break;
case 'link':
hs_label += '<i class="fas fa-link"></i> '+window.backend_labels.link;
break;
case 'pdf':
hs_label += '<i class="fas fa-file-pdf"></i> '+window.backend_labels.pdf;
break;
case 'pointclouds':
hs_label += '<i class="fas fa-dice-d20"></i> '+window.backend_labels.pointclouds;
break;
case 'link_ext':
hs_label += '<i class="fas fa-external-link-alt"></i> '+window.backend_labels.link_ext;
break;
case 'html':
hs_label += '<i class="fas fa-heading"></i> '+window.backend_labels.html;
break;
case 'html_sc':
hs_label += '<i class="fas fa-code"></i> '+window.backend_labels.html_sc;
break;
case 'download':
hs_label += '<i class="fas fa-download"></i> '+window.backend_labels.download;
break;
case 'form':
hs_label += '<i class="fab fa-wpforms"></i> '+window.backend_labels.form;
break;
case 'google_maps':
hs_label += '<i class="fas fa-map"></i> '+window.backend_labels.google_maps;
break;
case 'object360':
hs_label += '<i class="fas fa-compact-disc"></i> '+window.backend_labels.object360;
break;
case 'object3d':
hs_label += '<i class="fas fa-cube"></i> '+window.backend_labels.object3d;
break;
case 'lottie':
hs_label += '<i class="fab fa-deviantart"></i> Lottie';
break;
case 'product':
hs_label += '<i class="fas fa-shopping-cart"></i> '+window.backend_labels.product;
break;
case 'switch_pano':
hs_label += '<i class="fas fa-sync-alt"></i> '+window.backend_labels.switch_pano;
break;
case 'callout':
hs_label = '<i class="far fa-dot-circle"></i> '+window.backend_labels.callout;
break;
default:
switch(hs.embed_type) {
case 'image':
hs_label = '<i class="fas fa-image"></i> '+window.backend_labels.embed_image;
break;
case 'video':
hs_label = '<i class="fas fa-video"></i> '+window.backend_labels.embed_video;
break;
case 'video_transparent':
hs_label = '<i class="fas fa-video"></i> '+window.backend_labels.embed_video_transparent;
break;
case 'video_chroma':
hs_label = '<i class="fas fa-video"></i> '+window.backend_labels.embed_video_chroma;
break;
case 'object3d':
hs_label = '<i class="fas fa-cube"></i> '+window.backend_labels.embed_object3d;
break;
case 'gallery':
hs_label = '<i class="fas fa-images"></i> '+window.backend_labels.embed_gallery;
break;
case 'link':
hs_label = '<i class="fas fa-images"></i> '+window.backend_labels.embed_link;
break;
case 'text':
hs_label = '<i class="fas fa-heading"></i> '+window.backend_labels.embed_text;
break;
case 'html':
hs_label = '<i class="fas fa-code"></i> '+window.backend_labels.embed_html;
break;
case 'selection':
hs_label = '<i class="far fa-square"></i> '+window.backend_labels.embed_selection;
break;
default:
hs_label += '<i class="fas fa-ban"></i> '+window.backend_labels.none;
break;
}
break;
}
var hs_title = hs_label;
break;
}
html += '<button id="hs_'+hs.id+'" onclick="click_hs('+hs.id+',\''+type+'\');" type="button" class="list-group-item list-group-item-action"><span class="badge badge-light badge-pill">'+(index+1)+'</span> <span class="hs_title">'+hs_title+'</span></button>';
}
}
});
if(count==0) {
$('#btn_list_hs').addClass('disabled_d');
} else {
$('#btn_list_hs').removeClass('disabled_d');
}
$('.hs_badge_count').html(count);
$('#slider_hs_list .list-group').html(html);
}
window.click_hs = function(id,type) {
$('#action_box').hide();
$('#slider_hs_list .list-group button').removeClass('active');
switch(type) {
case 'marker':
click_edit_marker('',id);
break;
case 'poi':
click_edit_poi('',id);
break;
case 'measure':
click_edit_measure(id);
break;
}
}
window.change_marker_room_target = function (id,index,id_select) {
$('#confirm_edit .btn_confirm').addClass("disabled");
$('#btn_new_marker').addClass("disabled");
var name_room_target = $('#'+id_select).val();
var id_room_target = $('#'+id_select+' option:selected').attr('id');
if(id_select=='room_target') {
window.markers[index].name_room_target = name_room_target;
window.markers[index].id_room_target = id_room_target;
render_marker(id,index);
}
change_preview_room_image(id_room_target,id_select,index);
}
function change_preview_room_image(id_room_target,id_select,index_marker) {
jQuery.each(window.rooms, function(index, room) {
var id_room = room.id;
if(id_room==id_room_target) {
var room_image = room.panorama_image;
if(window.s3_enabled==1) {
$('.preview_room_target').attr('src',window.s3_url+'viewer/panoramas/thumb/'+room_image);
} else {
$('.preview_room_target').attr('src','../viewer/panoramas/thumb/'+room_image);
}
$('.preview_room_target').show();
if(index_marker!=null) {
var yaw_m = window.markers[index_marker].yaw_room_target;
var pitch_m = window.markers[index_marker].pitch_room_target;
if((yaw_m=='') && (pitch_m=='')) {
var yaw = parseFloat(room.yaw);
var pitch = parseFloat(room.pitch);
} else {
var yaw = parseFloat(window.markers[index_marker].yaw_room_target);
var pitch = parseFloat(window.markers[index_marker].pitch_room_target);
}
} else {
var yaw = parseFloat(room.yaw);
var pitch = parseFloat(room.pitch);
}
var h_pitch = room.h_pitch;
var h_roll = room.h_roll;
if(parseInt(room.allow_pitch)==1) {
var min_pitch = room.min_pitch;
var max_pitch = room.max_pitch;
} else {
var min_pitch = 0;
var max_pitch = 0;
pitch = 0;
}
var min_yaw = room.min_yaw;
var max_yaw = room.max_yaw;
var haov = room.haov;
var vaov = room.vaov;
if(window.s3_enabled==1) {
var panorama_image = window.s3_url+'viewer/panoramas/lowres/'+room_image+'?s3=1';
} else {
var panorama_image = '../viewer/panoramas/lowres/'+room_image;
}
if(id_select=='room_target_add') {
load_viewer_pos('panorama_pos_add',id_room,panorama_image,yaw,pitch,h_pitch,h_roll,min_pitch,max_pitch,haov,vaov,min_yaw,max_yaw,100);
} else {
load_viewer_pos('panorama_pos_edit',id_room,panorama_image,yaw,pitch,h_pitch,h_roll,min_pitch,max_pitch,haov,vaov,min_yaw,max_yaw,100);
}
return;
}
});
}
window.change_preview_room_image_map = function (id_room_sel) {
if(id_room_sel==null) {
id_room_sel = $('#room_select option:selected').attr('id');
}
jQuery.each(window.map_points, function(index, map_point) {
var id_room = map_point.id;
if(id_room==id_room_sel) {
var room_image = map_point.room_image;
$('.preview_room_target').attr('src',room_image);
$('.preview_room_target').show();
return;
}
});
}
window.change_preview_vt_image_map = function (id_vt_sel) {
if(id_vt_sel==null) {
id_vt_sel = $('#vt_select option:selected').attr('id');
}
jQuery.each(window.map_points, function(index, map_point) {
var id_vt = map_point.id;
if(id_vt==id_vt_sel) {
var vt_image = map_point.background_image;
if(vt_image!='') {
$('.preview_vt_target').attr('src',vt_image);
$('.preview_vt_target').show();
} else {
$('.preview_vt_target').hide();
}
return;
}
});
}
window.change_preview_room_image_presentation = function (id_room_sel) {
var id_room_sel = $('#p_room option:selected').attr('id');
var panorama_type = $('#p_room option:selected').attr('data-type');
if(panorama_type=='video') {
$('#p_wait_video_end').parent().parent().show();
} else {
$('#p_wait_video_end').parent().parent().hide();
}
jQuery.each(window.rooms, function(index, room) {
var id_room = room.id;
if(id_room==id_room_sel) {
$('#btn_add_p_room').addClass('disabled');
var room_image = room.panorama_image;
if(window.s3_enabled==1) {
$('.preview_room_target').attr('src',window.s3_url+'viewer/panoramas/thumb/'+room_image);
} else {
$('.preview_room_target').attr('src','../viewer/panoramas/thumb/'+room_image);
}
$('.preview_room_target').show();
var index_p_sel = -1;
jQuery.each(array_presentation,function(index_p,array_p) {
if(array_p.action=='goto' && array_p.id_room==id_room_sel) {
index_p_sel=index_p;
}
});
if(index_p_sel!=-1) {
if(array_presentation[index_p_sel].pos=='') {
$('#override_pos_presentation').prop('checked',false);
var yaw = parseFloat(room.yaw);
var pitch = parseFloat(room.pitch);
var hfov = 100;
} else {
$('#override_pos_presentation').prop('checked',true);
var tmp = array_presentation[index_p_sel].pos.split(",");
var yaw = parseFloat(tmp[0]);
var pitch = parseFloat(tmp[1]);
var hfov = parseInt(tmp[2]);
}
} else {
$('#override_pos_presentation').prop('checked',false);
var yaw = parseFloat(room.yaw);
var pitch = parseFloat(room.pitch);
var hfov = 100;
}
var h_pitch = room.h_pitch;
var h_roll = room.h_roll;
if(parseInt(room.allow_pitch)==1) {
var min_pitch = room.min_pitch;
var max_pitch = room.max_pitch;
} else {
var min_pitch = 0;
var max_pitch = 0;
pitch = 0;
}
var min_yaw = room.min_yaw;
var max_yaw = room.max_yaw;
var haov = room.haov;
var vaov = room.vaov;
if(window.s3_enabled==1) {
var panorama_image = window.s3_url+'viewer/panoramas/lowres/'+room_image+'?s3=1';
} else {
var panorama_image = '../viewer/panoramas/lowres/'+room_image;
}
load_viewer_pos('panorama_pos_presentation',id_room,panorama_image,yaw,pitch,h_pitch,h_roll,min_pitch,max_pitch,haov,vaov,min_yaw,max_yaw,hfov);
return;
}
});
}
window.change_marker_style_v = function() {
var style = $('#markers_style option:selected').attr('id');
switch(style) {
case 'custom_icon':
$('#m_icon').addClass('d-none').addClass('disabled');
$('#m_custom_icon').removeClass('d-none').removeClass('disabled');
$('#markers_color').addClass('disabled');
$('#markers_background').addClass('disabled');
$('#markers_icon_type').addClass('disabled');
break;
case 'only_room':
$('#m_icon').removeClass('d-none').addClass('disabled');
$('#m_custom_icon').addClass('d-none').addClass('disabled');
$('#markers_color').removeClass('disabled');
$('#markers_background').removeClass('disabled');
$('#markers_icon_type').removeClass('disabled');
break;
case 'preview_room':
$('#m_icon').removeClass('d-none').addClass('disabled');
$('#m_custom_icon').addClass('d-none').addClass('disabled');
$('#markers_color').addClass('disabled');
$('#markers_background').addClass('disabled');
$('#markers_icon_type').addClass('disabled');
break;
default:
$('#m_icon').removeClass('d-none').removeClass('disabled');
$('#m_custom_icon').addClass('d-none').addClass('disabled');
$('#markers_color').removeClass('disabled');
$('#markers_background').removeClass('disabled');
$('#markers_icon_type').removeClass('disabled');
break;
}
var icon_type = $('#markers_icon_type option:selected').attr('id');
switch(icon_type) {
case 'round':
$('.div_marker_wrapper_bg').css('border-radius','48px');
$('.div_marker_wrapper_bg').css('border','none');
break;
case 'square':
$('.div_marker_wrapper_bg').css('border-radius','3px');
$('.div_marker_wrapper_bg').css('border','none');
break;
case 'round_outline':
var markers_color = $('#markers_color').val();
$('.div_marker_wrapper_bg').css('border-radius','48px');
$('.div_marker_wrapper_bg').css('border','2px solid '+markers_color);
break;
case 'square_outline':
var markers_color = $('#markers_color').val();
$('.div_marker_wrapper_bg').css('border-radius','3px');
$('.div_marker_wrapper_bg').css('border','2px solid '+markers_color);
break;
}
$('.marker_final_preview').addClass('d-none');
$('#marker_'+style).removeClass('d-none');
}
window.change_poi_style_v = function() {
var style = $('#pois_style option:selected').attr('id');
switch(style) {
case 'custom_icon':
$('#p_icon').addClass('d-none').addClass('disabled');
$('#p_custom_icon').removeClass('d-none').removeClass('disabled');
$('#pois_color').addClass('disabled');
$('#pois_background').addClass('disabled');
$('#pois_icon_type').addClass('disabled');
break;
case 'only_label':
$('#p_icon').removeClass('d-none').addClass('disabled');;
$('#p_custom_icon').addClass('d-none').addClass('disabled');
$('#pois_color').removeClass('disabled');
$('#pois_background').removeClass('disabled');
$('#pois_icon_type').removeClass('disabled');
break;
default:
$('#p_icon').removeClass('d-none').removeClass('disabled');
$('#p_custom_icon').addClass('d-none').addClass('disabled');
$('#pois_color').removeClass('disabled');
$('#pois_background').removeClass('disabled');
$('#pois_icon_type').removeClass('disabled');
break;
}
var icon_type = $('#pois_icon_type option:selected').attr('id');
switch(icon_type) {
case 'round':
$('.div_poi_wrapper_bg').css('border-radius','48px');
$('.div_poi_wrapper_bg').css('border','none');
break;
case 'square':
$('.div_poi_wrapper_bg').css('border-radius','3px');
$('.div_poi_wrapper_bg').css('border','none');
break;
case 'round_outline':
var pois_color = $('#pois_color').val();
$('.div_poi_wrapper_bg').css('border-radius','48px');
$('.div_poi_wrapper_bg').css('border','2px solid '+pois_color);
break;
case 'square_outline':
var pois_color = $('#pois_color').val();
$('.div_poi_wrapper_bg').css('border-radius','3px');
$('.div_poi_wrapper_bg').css('border','2px solid '+pois_color);
break;
}
$('.poi_final_preview').addClass('d-none');
$('#poi_'+style).removeClass('d-none');
}
window.change_marker_style = function() {
var show_room = parseInt($('#marker_style option:selected').attr('id'));
window.markers[window.marker_index_edit].show_room = show_room;
switch(show_room) {
case 3:
$('#marker_library_icon').parent().parent().addClass('disabled').hide();
$('#marker_icon').parent().parent().addClass('disabled').show();
$('#marker_color').parent().parent().removeClass('disabled');
$('#marker_icon_type').parent().parent().removeClass('disabled');
$('#marker_background').parent().parent().removeClass('disabled');
render_marker(window.marker_id_edit,window.marker_index_edit);
break;
case 4:
$('#marker_icon').parent().parent().addClass('disabled').hide();
$('#marker_color').parent().parent().addClass('disabled');
$('#marker_background').parent().parent().addClass('disabled');
$('#marker_icon_type').parent().parent().addClass('disabled');
$('#marker_library_icon').parent().parent().removeClass('disabled').show();
var id_icon_library = parseInt($('#marker_library_icon').val());
if(id_icon_library!=0) {
render_marker(window.marker_id_edit,window.marker_index_edit);
} else {
$('#marker_library_icon_preview').hide();
$('#marker_library_icon_preview_l').hide();
}
break;
case 5:
$('#marker_library_icon').parent().parent().addClass('disabled').hide();
$('#marker_icon').parent().parent().addClass('disabled').show();
$('#marker_color').parent().parent().addClass('disabled');
$('#marker_icon_type').parent().parent().addClass('disabled');
$('#marker_background').parent().parent().addClass('disabled');
render_marker(window.marker_id_edit,window.marker_index_edit);
break;
default:
$('#marker_library_icon').parent().parent().addClass('disabled').hide();
$('#marker_icon').parent().parent().removeClass('disabled').show();
$('#marker_color').parent().parent().removeClass('disabled');
$('#marker_icon_type').parent().parent().removeClass('disabled');
$('#marker_background').parent().parent().removeClass('disabled');
render_marker(window.marker_id_edit,window.marker_index_edit);
break;
}
}
window.change_poi_style = function() {
var style = parseInt($('#poi_style option:selected').attr('id'));
switch(style) {
case 1:
$('#poi_icon').parent().parent().addClass('disabled').hide();
$('#poi_color').parent().parent().addClass('disabled');
$('#poi_background').parent().parent().addClass('disabled');
$('#poi_icon_type').parent().parent().addClass('disabled');
$('#poi_library_icon').parent().parent().removeClass('disabled').show();
var id_icon_library = parseInt($('#poi_library_icon').val());
if(id_icon_library!=0) {
render_poi(window.poi_id_edit,window.poi_index_edit);
} else {
$('#poi_library_icon_preview').hide();
$('#poi_library_icon_preview_l').hide();
}
break;
case 4:
$('#poi_library_icon').parent().parent().addClass('disabled').hide();
$('#poi_icon').parent().parent().addClass('disabled').show();
$('#poi_color').parent().parent().removeClass('disabled');
$('#poi_background').parent().parent().removeClass('disabled');
$('#poi_icon_type').parent().parent().removeClass('disabled');
window.pois[window.poi_index_edit].style = style;
render_poi(window.poi_id_edit,window.poi_index_edit);
break;
default:
$('#poi_library_icon').parent().parent().addClass('disabled').hide();
$('#poi_icon').parent().parent().removeClass('disabled').show();
$('#poi_color').parent().parent().removeClass('disabled');
$('#poi_background').parent().parent().removeClass('disabled');
$('#poi_icon_type').parent().parent().removeClass('disabled');
window.pois[window.poi_index_edit].style = style;
render_poi(window.poi_id_edit,window.poi_index_edit);
break;
}
if((style==0) || (style==1)) {
$('#poi_label').parent().addClass('disabled');
$('.input_lang[data-target-id="poi_label"]').parent().addClass('disabled');
} else {
$('#poi_label').parent().removeClass('disabled');
$('.input_lang[data-target-id="poi_label"]').parent().removeClass('disabled');
}
}
window.change_poi_animation = function () {
var animation = $('#poi_animation option:selected').attr('id');
window.pois[window.poi_index_edit].animation = animation;
render_poi(window.poi_id_edit,window.poi_index_edit);
}
window.change_marker_animation = function () {
var animation = $('#marker_animation option:selected').attr('id');
window.markers[window.marker_index_edit].animation = animation;
render_marker(window.marker_id_edit,window.marker_index_edit);
}
window.change_poi_animation_vt = function () {
var animation = $('#pois_animation option:selected').attr('id');
$('#modal_default_pois_style .pnlm-hotspot-base').removeClass(function(index, className) {
return (className.match(/\banimate__\S+/g) || []).join(' ');
});
$('#modal_default_pois_style .pnlm-hotspot-base').addClass('animate__animated');
$('#modal_default_pois_style .pnlm-hotspot-base').addClass('animate__slow');
$('#modal_default_pois_style .pnlm-hotspot-base').addClass('animate__infinite');
$('#modal_default_pois_style .pnlm-hotspot-base').addClass('animate__'+animation);
}
window.change_marker_animation_vt = function () {
var animation = $('#markers_animation option:selected').attr('id');
$('#modal_default_markers_style .pnlm-hotspot-base').removeClass(function(index, className) {
return (className.match(/\banimate__\S+/g) || []).join(' ');
});
$('#modal_default_markers_style .pnlm-hotspot-base').addClass('animate__animated');
$('#modal_default_markers_style .pnlm-hotspot-base').addClass('animate__slow');
$('#modal_default_markers_style .pnlm-hotspot-base').addClass('animate__infinite');
$('#modal_default_markers_style .pnlm-hotspot-base').addClass('animate__'+animation);
}
window.change_tooltip_type_m = function () {
var tooltip_type = $('#tooltip_type option:selected').attr('id');
switch(tooltip_type) {
case 'text':
$('#tooltip_text_html').parent().parent().removeClass('disabled');
$('.input_lang[data-target-id="tooltip_text_html"]').parent().parent().removeClass('disabled');
$('#tooltip_visibility').parent().removeClass('disabled');
$('#tooltip_background').parent().parent().removeClass('disabled');
$('#tooltip_color').parent().parent().removeClass('disabled');
break;
case 'room_name':
$('#tooltip_text_html').parent().parent().addClass('disabled');
$('.input_lang[data-target-id="tooltip_text_html"]').parent().parent().addClass('disabled');
$('#tooltip_visibility').parent().removeClass('disabled');
$('#tooltip_background').parent().parent().removeClass('disabled');
$('#tooltip_color').parent().parent().removeClass('disabled');
break;
case 'preview':
$('#tooltip_text_html').parent().parent().addClass('disabled');
$('.input_lang[data-target-id="tooltip_text_html"]').parent().parent().addClass('disabled');
$('#tooltip_visibility').parent().removeClass('disabled');
$('#tooltip_background').parent().parent().addClass('disabled');
$('#tooltip_color').parent().parent().addClass('disabled');
break;
case 'preview_square':
$('#tooltip_text_html').parent().parent().addClass('disabled');
$('.input_lang[data-target-id="tooltip_text_html"]').parent().parent().addClass('disabled');
$('#tooltip_visibility').parent().removeClass('disabled');
$('#tooltip_background').parent().parent().addClass('disabled');
$('#tooltip_color').parent().parent().addClass('disabled');
break;
case 'preview_rect':
$('#tooltip_text_html').parent().parent().addClass('disabled');
$('.input_lang[data-target-id="tooltip_text_html"]').parent().parent().addClass('disabled');
$('#tooltip_visibility').parent().removeClass('disabled');
$('#tooltip_background').parent().parent().addClass('disabled');
$('#tooltip_color').parent().parent().addClass('disabled');
break;
case 'none':
$('#tooltip_text_html').parent().parent().addClass('disabled');
$('.input_lang[data-target-id="tooltip_text_html"]').parent().parent().addClass('disabled');
$('#tooltip_visibility').parent().addClass('disabled');
$('#tooltip_background').parent().parent().addClass('disabled');
$('#tooltip_color').parent().parent().addClass('disabled');
break;
}
}
window.change_tooltip_type_m_vt = function () {
var tooltip_type = $('#markers_tooltip_type option:selected').attr('id');
switch(tooltip_type) {
case 'text':
$('#markers_tooltip_visibility').parent().removeClass('disabled');
$('#markers_tooltip_background').parent().parent().removeClass('disabled');
$('#markers_tooltip_color').parent().parent().removeClass('disabled');
break;
case 'room_name':
$('#markers_tooltip_visibility').parent().removeClass('disabled');
$('#markers_tooltip_background').parent().parent().removeClass('disabled');
$('#markers_tooltip_color').parent().parent().removeClass('disabled');
break;
case 'preview':
$('#markers_tooltip_visibility').parent().removeClass('disabled');
$('#markers_tooltip_background').parent().parent().addClass('disabled');
$('#markers_tooltip_color').parent().parent().addClass('disabled');
break;
case 'preview_square':
$('#markers_tooltip_visibility').parent().removeClass('disabled');
$('#markers_tooltip_background').parent().parent().addClass('disabled');
$('#markers_tooltip_color').parent().parent().addClass('disabled');
break;
case 'preview_rect':
$('#markers_tooltip_visibility').parent().removeClass('disabled');
$('#markers_tooltip_background').parent().parent().addClass('disabled');
$('#markers_tooltip_color').parent().parent().addClass('disabled');
break;
case 'none':
$('#markers_tooltip_visibility').parent().addClass('disabled');
$('#markers_tooltip_background').parent().parent().addClass('disabled');
$('#markers_tooltip_color').parent().parent().addClass('disabled');
break;
}
}
window.change_tooltip_type_p = function () {
var tooltip_type = $('#tooltip_type option:selected').attr('id');
switch(tooltip_type) {
case 'text':
$('#tooltip_text_html').parent().parent().removeClass('disabled');
$('.input_lang[data-target-id="tooltip_text_html"]').parent().parent().removeClass('disabled');
$('#tooltip_visibility').parent().removeClass('disabled');
$('#tooltip_background').parent().parent().removeClass('disabled');
$('#tooltip_color').parent().parent().removeClass('disabled');
break;
case 'none':
$('#tooltip_text_html').parent().parent().addClass('disabled');
$('.input_lang[data-target-id="tooltip_text_html"]').parent().parent().addClass('disabled');
$('#tooltip_visibility').parent().addClass('disabled');
$('#tooltip_background').parent().parent().addClass('disabled');
$('#tooltip_color').parent().parent().addClass('disabled');
break;
}
}
window.change_tooltip_type_p_vt = function () {
var tooltip_type = $('#pois_tooltip_type option:selected').attr('id');
switch(tooltip_type) {
case 'text':
$('#pois_tooltip_visibility').parent().removeClass('disabled');
$('#pois_tooltip_background').parent().parent().removeClass('disabled');
$('#pois_tooltip_color').parent().parent().removeClass('disabled');
break;
case 'none':
$('#pois_tooltip_visibility').parent().addClass('disabled');
$('#pois_tooltip_background').parent().parent().addClass('disabled');
$('#pois_tooltip_color').parent().parent().addClass('disabled');
break;
}
}
window.select_icon_library = function(p,id,image,base64,id_vt) {
if(window.s3_enabled==1 && id_vt!='') {
var image_url = window.s3_url+'viewer/icons/'+image+'?s3=1';
} else {
var image_url = '../viewer/icons/'+image;
}
switch(p){
case 'marker':
window.markers[window.marker_index_edit].show_room = 4;
window.markers[window.marker_index_edit].img_icon_library = image;
window.markers[window.marker_index_edit].base64_icon_library = base64;
$('#marker_library_icon').val(id);
var ext = image.split('.').pop().toLowerCase();
if(ext=='json') {
var html_image = '<div id="lottie_preview_'+window.marker_id_edit+'" style="height:30px;width:30px;vertical-align:middle"></div>';
$('#marker_library_icon_preview_l').html(html_image).promise().done(function () {
$('#marker_library_icon_preview_l').css('display','inline-block');
bodymovin.loadAnimation({
container: document.getElementById('lottie_preview_'+window.marker_id_edit),
renderer: 'svg',
loop: true,
autoplay: true,
path: image_url,
rendererSettings: {
progressiveLoad: true,
}
});
});
$('#marker_library_icon_preview').hide();
} else {
$('#marker_library_icon_preview').attr('src',image_url);
$('#marker_library_icon_preview').show();
$('#marker_library_icon_preview_l').hide();
}
render_marker(window.marker_id_edit,window.marker_index_edit);
break;
case 'poi':
window.pois[window.poi_index_edit].style = 1;
window.pois[window.poi_index_edit].img_icon_library = image;
window.pois[window.poi_index_edit].base64_icon_library = base64;
$('#poi_library_icon').val(id);
var ext = image.split('.').pop().toLowerCase();
if(ext=='json') {
var html_image = '<div id="lottie_preview_'+window.poi_id_edit+'" style="height:30px;width:30px;vertical-align:middle"></div>';
$('#poi_library_icon_preview_l').html(html_image).promise().done(function () {
$('#poi_library_icon_preview_l').css('display','inline-block');
bodymovin.loadAnimation({
container: document.getElementById('lottie_preview_'+window.poi_id_edit),
renderer: 'svg',
loop: true,
autoplay: true,
path: image_url,
rendererSettings: {
progressiveLoad: true,
}
});
});
$('#poi_library_icon_preview').hide();
} else {
$('#poi_library_icon_preview').attr('src',image_url);
$('#poi_library_icon_preview').show();
$('#poi_library_icon_preview_l').hide();
}
render_poi(window.poi_id_edit,window.poi_index_edit);
break;
case 'icons':
$('#'+window.element_icon_sel+'_library_icon').val(id);
$('#'+window.element_icon_sel+'_library_icon_preview').attr('src',image_url);
$('.'+window.element_icon_sel+'_control img').remove();
$('div.'+window.element_icon_sel+'_control').prepend('<img style="width:100%;height:100%;" src="'+image_url+'" />')
$('p.'+window.element_icon_sel+'_control').prepend('<img style="width:12px;height:12px;vertical-align:middle;margin-bottom:1px;" src="'+image_url+'" />')
$('.'+window.element_icon_sel+'_control i').css('display','none');
$('#GetIconPicker_'+window.element_icon_sel).parent().addClass('disabled');
$('#btn_remove_library_icon_'+window.element_icon_sel).removeClass('disabled');
$('#'+window.element_icon_sel+'_library_icon_preview').show();
$('#modal_library_icons').modal('hide');
break;
}
$('#modal_library_icons').modal('hide');
}
window.select_icon_library_v = function(p,id,image,id_vt) {
if(window.s3_enabled==1 && id_vt!='') {
var image_url = window.s3_url+'viewer/icons/'+image+'?s3=1';
} else {
var image_url = '../viewer/icons/'+image;
}
switch(p){
case 'marker':
$('#marker_library_icon').val(id);
var ext = image.split('.').pop().toLowerCase();
if(ext=='json') {
var html_image = '<div id="lottie_preview_m_'+id+'" style="height:30px;width:30px;vertical-align:middle"></div>';
$('#marker_library_icon_preview_l').html(html_image).promise().done(function () {
$('#marker_library_icon_preview_l').css('display','inline-block');
bodymovin.loadAnimation({
container: document.getElementById('lottie_preview_m_'+id),
renderer: 'svg',
loop: true,
autoplay: true,
path: image_url,
rendererSettings: {
progressiveLoad: true,
}
});
});
var html_image = '<div id="lottie_preview_m" style="height:50px;width:50px;vertical-align:middle"></div>';
$('#marker_lottie_pewview').html(html_image).promise().done(function () {
$('#marker_lottie_pewview').css('display','inline-block');
bodymovin.loadAnimation({
container: document.getElementById('lottie_preview_m'),
renderer: 'svg',
loop: true,
autoplay: true,
path: image_url,
rendererSettings: {
progressiveLoad: true,
}
});
});
$('#marker_lottie_pewview').removeClass('d-none');
$('#marker_custom_icon img').addClass('d-none');
$('#marker_library_icon_preview').hide();
} else {
$('#marker_library_icon_preview').attr('src',image_url);
$('#marker_custom_icon img').attr('src',image_url);
$('#marker_lottie_pewview').addClass('d-none');
$('#marker_custom_icon img').removeClass('d-none');
$('#marker_library_icon_preview').show();
$('#marker_library_icon_preview_l').hide();
}
$('#modal_library_icons_markers').modal('hide');
break;
case 'poi':
$('#poi_library_icon').val(id);
var ext = image.split('.').pop().toLowerCase();
if(ext=='json') {
var html_image = '<div id="lottie_preview_p_'+id+'" style="height:30px;width:30px;vertical-align:middle"></div>';
$('#poi_library_icon_preview_l').html(html_image).promise().done(function () {
$('#poi_library_icon_preview_l').css('display','inline-block');
bodymovin.loadAnimation({
container: document.getElementById('lottie_preview_p_'+id),
renderer: 'svg',
loop: true,
autoplay: true,
path: image_url,
rendererSettings: {
progressiveLoad: true,
}
});
var html_image = '<div id="lottie_preview_p" style="height:50px;width:50px;vertical-align:middle"></div>';
$('#poi_lottie_pewview').html(html_image).promise().done(function () {
$('#poi_lottie_pewview').css('display','inline-block');
bodymovin.loadAnimation({
container: document.getElementById('lottie_preview_p'),
renderer: 'svg',
loop: true,
autoplay: true,
path: image_url,
rendererSettings: {
progressiveLoad: true,
}
});
});
});
$('#poi_lottie_pewview').removeClass('d-none');
$('#poi_custom_icon img').addClass('d-none');
$('#poi_library_icon_preview').hide();
} else {
$('#poi_library_icon_preview').attr('src',image_url);
$('#poi_custom_icon img').attr('src',image_url);
$('#poi_lottie_pewview').addClass('d-none');
$('#poi_custom_icon img').removeClass('d-none');
$('#poi_library_icon_preview').show();
$('#poi_library_icon_preview_l').hide();
}
$('#modal_library_icons_pois').modal('hide');
break;
}
}
window.remove_library_icon = function(element) {
$('#'+element+'_library_icon').val(0);
$('#'+element+'_library_icon_preview').attr('src','');
$('.'+element+'_control img').remove();
$('.'+element+'_control i').css('display','inline-block');
$('#GetIconPicker_'+element).parent().removeClass('disabled');
$('#btn_remove_library_icon_'+element).addClass('disabled');
$('#'+element+'_library_icon_preview').hide();
}
window.render_marker_p = function(id,index) {
if(window.pois[index].embed_type!='') {
window.viewer.removeHotSpot("m"+id.toString());
window.viewer.removeHotSpot("m"+id.toString()+"_1");
window.viewer.removeHotSpot("m"+id.toString()+"_2");
window.viewer.removeHotSpot("m"+id.toString()+"_3");
window.viewer.removeHotSpot("m"+id.toString()+"_4");
window.viewer.removeHotSpot("m"+id.toString()+"_move");
window.viewer.addHotSpot({
"id": "m"+window.pois[index].id,
"type": window.pois[index].embed_type,
"object": "marker_embed",
"transform3d": parseInt(window.pois[index].transform3d),
"scale": false,
"tooltip_type": "",
"pitch": parseFloat(window.pois[index].pitch),
"yaw": parseFloat(window.pois[index].yaw),
"rotateX": 0,
"rotateZ": 0,
"size_scale": 1,
"cssClass": "hotspot-embed hotspot",
"createTooltipFunc": hotspot_embed_m,
"createTooltipArgs": window.pois[index],
"clickHandlerFunc": click_edit_marker,
"clickHandlerArgs": window.pois[index].id
});
var marker_embed_helpers = window.pois[index].embed_coords.split("|");
marker_embed_helpers[0] = marker_embed_helpers[0].split(",");
marker_embed_helpers[1] = marker_embed_helpers[1].split(",");
marker_embed_helpers[2] = marker_embed_helpers[2].split(",");
marker_embed_helpers[3] = marker_embed_helpers[3].split(",");
jQuery.each(marker_embed_helpers, function(index_h, marker_embed_helper) {
window.viewer.addHotSpot({
"id": "m"+window.pois[index].id+"_"+(index_h+1),
"type": 'pointer',
"object": "marker_embed_helper",
"transform3d": false,
"pitch": parseFloat(marker_embed_helper[0]),
"yaw": parseFloat(marker_embed_helper[1]),
"size_scale": 1,
"rotateX": 0,
"rotateZ": 0,
"draggable": true,
"cssClass": "hotspot-helper",
"createTooltipFunc": hotspot_embed_helper_m,
"createTooltipArgs": [window.pois[index].id,(index_h+1)],
"dragHandlerFunc": drag_embed_helper_m,
"dragHandlerArgs": [window.pois[index],index_h]
});
});
window.viewer.addHotSpot({
"id": "m"+window.pois[index].id+"_move",
"type": 'pointer',
"object": "marker_embed_helper",
"transform3d": false,
"pitch": parseFloat(window.pois[index].pitch),
"yaw": parseFloat(window.pois[index].yaw),
"size_scale": 1,
"rotateX": 0,
"rotateZ": 0,
"draggable": true,
"cssClass": "hotspot-helper",
"createTooltipFunc": hotspot_embed_move_m,
"createTooltipArgs": window.pois[index].id,
"dragHandlerFunc": drag_embed_move_m,
"dragHandlerArgs": [window.pois[index].id,index]
});
init_marker_embed();
}
}
window.render_marker = function(id,index) {
if(window.markers[index].embed_type!='') {
window.viewer.removeHotSpot("m"+id.toString());
window.viewer.removeHotSpot("m"+id.toString()+"_1");
window.viewer.removeHotSpot("m"+id.toString()+"_2");
window.viewer.removeHotSpot("m"+id.toString()+"_3");
window.viewer.removeHotSpot("m"+id.toString()+"_4");
window.viewer.removeHotSpot("m"+id.toString()+"_move");
window.viewer.addHotSpot({
"id": "m"+window.markers[index].id,
"type": window.markers[index].embed_type,
"object": "marker_embed",
"transform3d": parseInt(window.markers[index].transform3d),
"scale": false,
"tooltip_type": "",
"pitch": parseFloat(window.markers[index].pitch),
"yaw": parseFloat(window.markers[index].yaw),
"rotateX": 0,
"rotateZ": 0,
"size_scale": 1,
"cssClass": "hotspot-embed hotspot",
"createTooltipFunc": hotspot_embed_m,
"createTooltipArgs": window.markers[index],
"clickHandlerFunc": click_edit_marker,
"clickHandlerArgs": window.markers[index].id
});
var marker_embed_helpers = window.markers[index].embed_coords.split("|");
marker_embed_helpers[0] = marker_embed_helpers[0].split(",");
marker_embed_helpers[1] = marker_embed_helpers[1].split(",");
marker_embed_helpers[2] = marker_embed_helpers[2].split(",");
marker_embed_helpers[3] = marker_embed_helpers[3].split(",");
jQuery.each(marker_embed_helpers, function(index_h, marker_embed_helper) {
window.viewer.addHotSpot({
"id": "m"+window.markers[index].id+"_"+(index_h+1),
"type": 'pointer',
"object": "marker_embed_helper",
"transform3d": false,
"pitch": parseFloat(marker_embed_helper[0]),
"yaw": parseFloat(marker_embed_helper[1]),
"size_scale": 1,
"rotateX": 0,
"rotateZ": 0,
"draggable": true,
"cssClass": "hotspot-helper",
"createTooltipFunc": hotspot_embed_helper_m,
"createTooltipArgs": [window.markers[index].id,(index_h+1)],
"dragHandlerFunc": drag_embed_helper_m,
"dragHandlerArgs": [window.markers[index],index_h]
});
});
window.viewer.addHotSpot({
"id": "m"+window.markers[index].id+"_move",
"type": 'pointer',
"object": "marker_embed_helper",
"transform3d": false,
"pitch": parseFloat(window.markers[index].pitch),
"yaw": parseFloat(window.markers[index].yaw),
"size_scale": 1,
"rotateX": 0,
"rotateZ": 0,
"draggable": true,
"cssClass": "hotspot-helper",
"createTooltipFunc": hotspot_embed_move_m,
"createTooltipArgs": window.markers[index].id,
"dragHandlerFunc": drag_embed_move_m,
"dragHandlerArgs": [window.markers[index].id,index]
});
init_marker_embed();
} else {
window.viewer.removeHotSpot(id.toString());
window.viewer.addHotSpot({
"id": window.markers[index].id,
"type": 'marker',
"transform3d": false,
"draggable": false,
"scale": (parseInt(window.markers[index].scale)==1) ? true : false,
"pitch": parseFloat(window.markers[index].pitch),
"yaw": parseFloat(window.markers[index].yaw),
"rotateX": parseInt(window.markers[index].rotateX),
"rotateZ": parseInt(window.markers[index].rotateZ),
"size_scale": parseFloat(window.markers[index].size_scale),
"cssClass": "custom-hotspot hotspot",
"createTooltipFunc": hotspot_m,
"createTooltipArgs": window.markers[index],
"clickHandlerFunc": click_edit_marker,
"clickHandlerArgs": parseInt(window.markers[index].id)
});
}
}
window.render_poi_embed_m = function(id,index) {
window.viewer.removeHotSpot(id.toString());
window.viewer.removeHotSpot("p"+id.toString());
window.viewer.removeHotSpot("p"+id.toString()+"_1");
window.viewer.removeHotSpot("p"+id.toString()+"_2");
window.viewer.removeHotSpot("p"+id.toString()+"_3");
window.viewer.removeHotSpot("p"+id.toString()+"_4");
window.viewer.removeHotSpot("p"+id.toString()+"_move");
if(window.markers[index].embed_type!='' && window.markers[index].transform3d==1) {
window.viewer.addHotSpot({
"id": "p"+window.markers[index].id,
"type": window.markers[index].embed_type,
"object": "poi_embed",
"transform3d": parseInt(window.markers[index].transform3d),
"scale": false,
"tooltip_type": "",
"pitch": parseFloat(window.markers[index].pitch),
"yaw": parseFloat(window.markers[index].yaw),
"rotateX": 0,
"rotateZ": 0,
"size_scale": 1,
"cssClass": "hotspot-embed hotspot",
"createTooltipFunc": hotspot_embed,
"createTooltipArgs": window.markers[index],
"clickHandlerFunc": click_edit_poi,
"clickHandlerArgs": window.markers[index].id
});
var poi_embed_helpers = window.markers[index].embed_coords.split("|");
poi_embed_helpers[0] = poi_embed_helpers[0].split(",");
poi_embed_helpers[1] = poi_embed_helpers[1].split(",");
poi_embed_helpers[2] = poi_embed_helpers[2].split(",");
poi_embed_helpers[3] = poi_embed_helpers[3].split(",");
jQuery.each(poi_embed_helpers, function(index_h, poi_embed_helper) {
window.viewer.addHotSpot({
"id": "p"+window.markers[index].id+"_"+(index_h+1),
"type": 'pointer',
"object": "poi_embed_helper",
"transform3d": false,
"pitch": parseFloat(poi_embed_helper[0]),
"yaw": parseFloat(poi_embed_helper[1]),
"size_scale": 1,
"rotateX": 0,
"rotateZ": 0,
"draggable": true,
"cssClass": "hotspot-helper",
"createTooltipFunc": hotspot_embed_helper,
"createTooltipArgs": [window.markers[index].id,(index_h+1)],
"dragHandlerFunc": drag_embed_helper,
"dragHandlerArgs": [window.markers[index],index_h]
});
});
window.viewer.addHotSpot({
"id": "p"+window.markers[index].id+"_move",
"type": 'pointer',
"object": "poi_embed_helper",
"transform3d": false,
"pitch": parseFloat(window.markers[index].pitch),
"yaw": parseFloat(window.markers[index].yaw),
"size_scale": 1,
"rotateX": 0,
"rotateZ": 0,
"draggable": true,
"cssClass": "hotspot-helper",
"createTooltipFunc": hotspot_embed_move,
"createTooltipArgs": window.markers[index].id,
"dragHandlerFunc": drag_embed_move,
"dragHandlerArgs": [window.markers[index].id,index]
});
init_poi_embed();
}
}
window.render_poi = function(id,index) {
window.viewer.removeHotSpot(id.toString());
window.viewer.removeHotSpot("p"+id.toString());
window.viewer.removeHotSpot("p"+id.toString()+"_1");
window.viewer.removeHotSpot("p"+id.toString()+"_2");
window.viewer.removeHotSpot("p"+id.toString()+"_3");
window.viewer.removeHotSpot("p"+id.toString()+"_4");
window.viewer.removeHotSpot("p"+id.toString()+"_move");
if(window.pois[index].embed_type!='' && window.pois[index].transform3d==1) {
window.viewer.addHotSpot({
"id": "p"+window.pois[index].id,
"type": window.pois[index].embed_type,
"object": "poi_embed",
"transform3d": parseInt(window.pois[index].transform3d),
"scale": false,
"tooltip_type": "",
"pitch": parseFloat(window.pois[index].pitch),
"yaw": parseFloat(window.pois[index].yaw),
"rotateX": 0,
"rotateZ": 0,
"size_scale": 1,
"cssClass": "hotspot-embed hotspot",
"createTooltipFunc": hotspot_embed,
"createTooltipArgs": window.pois[index],
"clickHandlerFunc": click_edit_poi,
"clickHandlerArgs": window.pois[index].id
});
var poi_embed_helpers = window.pois[index].embed_coords.split("|");
poi_embed_helpers[0] = poi_embed_helpers[0].split(",");
poi_embed_helpers[1] = poi_embed_helpers[1].split(",");
poi_embed_helpers[2] = poi_embed_helpers[2].split(",");
poi_embed_helpers[3] = poi_embed_helpers[3].split(",");
jQuery.each(poi_embed_helpers, function(index_h, poi_embed_helper) {
window.viewer.addHotSpot({
"id": "p"+window.pois[index].id+"_"+(index_h+1),
"type": 'pointer',
"object": "poi_embed_helper",
"transform3d": false,
"pitch": parseFloat(poi_embed_helper[0]),
"yaw": parseFloat(poi_embed_helper[1]),
"size_scale": 1,
"rotateX": 0,
"rotateZ": 0,
"draggable": true,
"cssClass": "hotspot-helper",
"createTooltipFunc": hotspot_embed_helper,
"createTooltipArgs": [window.pois[index].id,(index_h+1)],
"dragHandlerFunc": drag_embed_helper,
"dragHandlerArgs": [window.pois[index],index_h]
});
});
window.viewer.addHotSpot({
"id": "p"+window.pois[index].id+"_move",
"type": 'pointer',
"object": "poi_embed_helper",
"transform3d": false,
"pitch": parseFloat(window.pois[index].pitch),
"yaw": parseFloat(window.pois[index].yaw),
"size_scale": 1,
"rotateX": 0,
"rotateZ": 0,
"draggable": true,
"cssClass": "hotspot-helper",
"createTooltipFunc": hotspot_embed_move,
"createTooltipArgs": window.pois[index].id,
"dragHandlerFunc": drag_embed_move,
"dragHandlerArgs": [window.pois[index].id,index]
});
init_poi_embed();
} else {
if(window.pois[index].embed_type!='' && window.pois[index].transform3d==0) {
window.viewer.addHotSpot({
"id": "p"+window.pois[index].id,
"type": window.pois[index].embed_type,
"object": "poi_embed",
"transform3d": parseInt(window.pois[index].transform3d),
"scale": false,
"pitch": parseFloat(window.pois[index].pitch),
"yaw": parseFloat(window.pois[index].yaw),
"rotateX": parseInt(window.pois[index].rotateX),
"rotateZ": parseInt(window.pois[index].rotateZ),
"size_scale": parseFloat(window.pois[index].size_scale),
"cssClass": "hotspot-embed hotspot",
"createTooltipFunc": hotspot_embed,
"createTooltipArgs": window.pois[index],
"clickHandlerFunc": click_edit_poi,
"clickHandlerArgs": window.pois[index].id
});
clearInterval(interval_adjust_embed_helpers_all);
interval_adjust_embed_helpers_all = setInterval(function () {
adjust_poi_embed_helpers_all();
adjust_marker_embed_helpers_all();
count_adjust_embed_helpers_all++;
if(count_adjust_embed_helpers_all>=500) {
clearInterval(interval_adjust_embed_helpers_all);
count_adjust_embed_helpers_all=0;
}
},1);
} else {
switch(window.pois[index].type) {
case 'callout':
window.viewer.addHotSpot({
"id": window.pois[index].id,
"type": 'poi',
"transform3d": false,
"scale": false,
"pitch": parseFloat(window.pois[index].pitch),
"yaw": parseFloat(window.pois[index].yaw),
"rotateX": 0,
"rotateZ": 0,
"size_scale": 1,
"cssClass": "custom-hotspot-content hotspot",
"createTooltipFunc": hotspot_p_callout,
"createTooltipArgs": window.pois[index],
"clickHandlerFunc": click_edit_poi,
"clickHandlerArgs": window.pois[index].id
});
break;
default:
window.viewer.addHotSpot({
"id": window.pois[index].id,
"type": 'poi',
"transform3d": false,
"scale": (parseInt(window.pois[index].scale)==1) ? true : false,
"pitch": parseFloat(window.pois[index].pitch),
"yaw": parseFloat(window.pois[index].yaw),
"rotateX": parseInt(window.pois[index].rotateX),
"rotateZ": parseInt(window.pois[index].rotateZ),
"size_scale": parseFloat(window.pois[index].size_scale),
"cssClass": "custom-hotspot-content hotspot",
"createTooltipFunc": hotspot_p,
"createTooltipArgs": window.pois[index],
"clickHandlerFunc": click_edit_poi,
"clickHandlerArgs": window.pois[index].id
});
break;
}
}
}
}
window.render_poi_move = function(id,index) {
window.viewer.removeHotSpot(id.toString());
window.viewer.removeHotSpot("p"+id.toString());
window.viewer.removeHotSpot("p"+id.toString()+"_1");
window.viewer.removeHotSpot("p"+id.toString()+"_2");
window.viewer.removeHotSpot("p"+id.toString()+"_3");
window.viewer.removeHotSpot("p"+id.toString()+"_4");
window.viewer.removeHotSpot("p"+id.toString()+"_move");
if(window.pois[index].transform3d==1) {
window.viewer.addHotSpot({
"id": "p"+window.pois[index].id,
"type": window.pois[index].embed_type,
"object": "poi_embed",
"transform3d": parseInt(window.pois[index].transform3d),
"tooltip_type": "",
"pitch": parseFloat(window.pois[index].pitch),
"yaw": parseFloat(window.pois[index].yaw),
"rotateX": 0,
"rotateZ": 0,
"size_scale": 1,
"cssClass": "hotspot-embed hotspot",
"createTooltipFunc": hotspot_embed,
"createTooltipArgs": window.pois[index]
});
var poi_embed_helpers = window.pois[index].embed_coords.split("|");
poi_embed_helpers[0] = poi_embed_helpers[0].split(",");
poi_embed_helpers[1] = poi_embed_helpers[1].split(",");
poi_embed_helpers[2] = poi_embed_helpers[2].split(",");
poi_embed_helpers[3] = poi_embed_helpers[3].split(",");
jQuery.each(poi_embed_helpers, function(index_h, poi_embed_helper) {
window.viewer.addHotSpot({
"id": "p"+window.pois[index].id+"_"+(index_h+1),
"type": 'pointer',
"object": "poi_embed_helper",
"transform3d": false,
"pitch": parseFloat(poi_embed_helper[0]),
"yaw": parseFloat(poi_embed_helper[1]),
"size_scale": 1,
"rotateX": 0,
"rotateZ": 0,
"draggable": true,
"cssClass": "hotspot-helper",
"createTooltipFunc": hotspot_embed_helper,
"createTooltipArgs": [window.pois[index].id,(index_h+1)],
"dragHandlerFunc": drag_embed_helper,
"dragHandlerArgs": [window.pois[index],index_h]
});
});
window.viewer.addHotSpot({
"id": "p"+window.pois[index].id+"_move",
"type": 'pointer',
"object": "poi_embed_helper",
"transform3d": false,
"pitch": parseFloat(window.pois[index].pitch),
"yaw": parseFloat(window.pois[index].yaw),
"size_scale": 1,
"rotateX": 0,
"rotateZ": 0,
"draggable": true,
"cssClass": "hotspot-helper",
"createTooltipFunc": hotspot_embed_move,
"createTooltipArgs": window.pois[index].id,
"dragHandlerFunc": drag_embed_move,
"dragHandlerArgs": [window.pois[index].id,index]
});
} else {
window.viewer.addHotSpot({
"id": "p"+window.pois[index].id,
"type": window.pois[index].embed_type,
"object": "poi_embed",
"draggable": true,
"transform3d": parseInt(window.pois[index].transform3d),
"pitch": parseFloat(window.pois[index].pitch),
"yaw": parseFloat(window.pois[index].yaw),
"rotateX": parseInt(window.pois[index].rotateX),
"rotateZ": parseInt(window.pois[index].rotateZ),
"size_scale": parseFloat(window.pois[index].size_scale),
"cssClass": "hotspot-embed hotspot",
"createTooltipFunc": hotspot_embed,
"createTooltipArgs": window.pois[index],
"dragHandlerFunc": drag_poi_move,
"dragHandlerArgs": index
});
}
init_poi_embed();
}
window.get_option_rooms_target = function(id_select,id,id_room_target,id_marker,index_marker) {
var html_option_rooms_target = "";
var first_id_room = null;
if(id_select=='room_default') {
html_option_rooms_target += '<option id="0">'+window.backend_labels.none+'</option>';
}
jQuery.each(window.rooms, function(index, room) {
var id_room = room.id;
var name = room.name;
if(id!=id_room) {
if(first_id_room==null) {
first_id_room = id_room;
}
if(id_room==id_room_target) {
html_option_rooms_target += '<option selected id="'+id_room+'">'+name+'</option>';
} else {
html_option_rooms_target += '<option id="'+id_room+'">'+name+'</option>';
}
return;
}
});
$('#'+id_select).empty();
$('#'+id_select).html(html_option_rooms_target).promise().done(function () {
switch(id_select) {
case 'room_default':
break;
case 'room_target_add':
$('#'+id_select).attr('onchange','change_marker_room_target('+id_marker+','+index_marker+',\''+id_select+'\')');
if(id_room_target==0) {
change_preview_room_image(first_id_room,id_select,index_marker);
} else {
change_preview_room_image(id_room_target,id_select,index_marker);
}
break;
default:
$('#'+id_select).attr('onchange','change_marker_room_target('+id_marker+','+index_marker+',\''+id_select+'\')');
change_preview_room_image(id_room_target,id_select,index_marker);
break;
}
$('#'+id_select).selectpicker('refresh');
var val = $('#'+id_select).selectpicker('val');
$('#'+id_select).selectpicker('val', val);
});
}
window.get_option_rooms_duplicate = function(id_select,id) {
var html_option_rooms_target = "";
jQuery.each(window.rooms, function(index, room) {
var id_room = room.id;
var name = room.name;
var panorama_image = room.panorama_image;
if(id_room==id) {
html_option_rooms_target += '<option data-image="'+panorama_image+'" selected id="'+id_room+'">'+name+'</option>';
} else {
html_option_rooms_target += '<option data-image="'+panorama_image+'" id="' + id_room + '">' + name + '</option>';
}
});
$('#'+id_select).empty();
$('#'+id_select).html(html_option_rooms_target).promise().done(function () {
$('#'+id_select).selectpicker('refresh');
var val = $('#'+id_select).selectpicker('val');
$('#'+id_select).selectpicker('val', val);
});
}
window.set_room_target_map = function(id) {
jQuery.each(window.map_points, function(index, point) {
var id_room = point.id;
var name = point.name;
if(id_room==id) {
$('#room_target').val(name);
$('#preview_room_image_map').attr('src',point.room_image);
}
});
}
window.set_vt_target_map = function(id) {
jQuery.each(window.map_points, function(index, point) {
var id_room = point.id;
var name = point.name;
if(id_room==id) {
$('#room_target').val(name);
if(point.background_image!='') {
$('#preview_vt_image_map').attr('src',point.background_image);
$('#preview_vt_image_map').show();
} else {
$('#preview_vt_image_map').hide();
}
}
});
}
window.adjust_points_size = function () {
var point_size = $('#point_size').val();
if((point_size=='') || (point_size<=0)) {
point_size=20;
}
point_size = parseInt(point_size);
switch (window.map_type) {
case 'floorplan':
$('.pointer').css('width',point_size+'px');
$('.pointer').css('height',point_size+'px');
break;
case 'map':
point_size = point_size*2;
$.each(window.map_tour_l._marker, function (ml) {
var icon = ml.options.icon;
icon.options.iconSize = [point_size, point_size];
icon.options.iconAnchor = [(point_size/2), (point_size/2)];
ml.setIcon(icon);
});
$('.map_tour_icon').css('width',point_size+'px');
$('.map_tour_icon').css('height',point_size+'px');
break;
}
}
window.adjust_points_position = function () {
var image_w = $('#map_image').width();
var image_h = $('#map_image').height();
$('#pointers_div').css('width',image_w+'px');
$('#pointers_div').css('height',image_h+'px');
var ratio = image_w / image_h;
var ratio_w = image_w / 300;
var ratio_h = image_h / ((image_w / ratio_w) / ratio);
window.ratio_w = ratio_w;
window.ratio_h = ratio_h;
jQuery.each(window.map_points, function(index, point) {
var id_point = point.id;
var map_left = point.map_left;
var map_top = point.map_top;
var pos_left = map_left * ratio_w;
var pos_top = map_top * ratio_h;
$('#pointer_'+id_point).css('transform','scale('+ratio_w+')');
$('#pointer_'+id_point).css('top',pos_top+'px');
$('#pointer_'+id_point).css('left',pos_left+'px');
});
}
window.adjust_marker_position = function () {
var image_w = $('#panorama_image').width();
var image_h = $('#panorama_image').height();
$('#markers_div').css('width',image_w+'px');
$('#markers_div').css('height',image_h+'px');
var half_x = image_w / 2;
var half_y = image_h / 2;
var ratio_x = half_x / 180;
var ratio_y = half_y / 90;
if(image_w>=1100) {
var scale = 0.7;
} else if((image_w<1100) & (image_w>=500)) {
var scale = 0.5;
} else {
var scale = 0.3;
}
jQuery.each(window.markers, function(index, marker) {
var id_marker = marker.id;
var yaw = marker.yaw;
var pitch = marker.pitch * -1;
var marker_w = $('#marker_'+id_marker).width();
var marker_h = $('#marker_'+id_marker).height();
var pos_left = ((yaw*ratio_x)+half_x)-(marker_w/1.77);
var pos_top = ((pitch*ratio_y)+half_y)-(marker_h/1.77);
$('#marker_'+id_marker).css('transform','translate('+pos_left+'px,'+pos_top+'px) scale('+scale+')');
});
}
window.adjust_poi_position = function () {
var image_w = $('#panorama_image').width();
var image_h = $('#panorama_image').height();
$('#markers_div').css('width',image_w+'px');
$('#markers_div').css('height',image_h+'px');
var half_x = image_w / 2;
var half_y = image_h / 2;
var ratio_x = half_x / 180;
var ratio_y = half_y / 90;
if(image_w>=1100) {
var scale = 1;
} else if((image_w<1100) & (image_w>=500)) {
var scale = 0.6;
} else {
var scale = 0.3;
}
jQuery.each(window.pois, function(index, poi) {
var id_poi = poi.id;
var yaw = poi.yaw;
var pitch = poi.pitch * -1;
var poi_w = $('#poi_'+id_poi).width();
var poi_h = $('#poi_'+id_poi).height();
var pos_left = ((yaw*ratio_x)+half_x)-(poi_w/1.3);
var pos_top = ((pitch*ratio_y)+half_y)-(poi_h/1.3);
$('#poi_'+id_poi).css('transform','translate('+pos_left+'px,'+pos_top+'px) scale('+scale+')');
});
}
window.persist_search = function (type) {
sessionStorage.setItem('search_'+type,$('.search_input').val());
}
window.clear_search = function (type) {
sessionStorage.setItem('search_'+type,'');
$('.search_input').val('');
$('.search_input').trigger('change');
}
window.filter_0_markers = function () {
$('.search_input').val('0 '+window.backend_labels.markers);
sessionStorage.setItem('search_room',$('.search_input').val());
$('.search_input').trigger('change');
}
function parse_room_list(rooms,permissions) {
var html = '', html_search = '';
var search_val = sessionStorage.getItem('search_room');
if(search_val==null) search_val='';
if(rooms.length>0 && window.ar_simulator==0) {
html_search = '<div class="card mb-2 pt-3">\n' +
' <div class="card-body" style="padding-top: 0;padding-bottom: 0;">';
html_search += '<div class="row">\n' +
' <div class="col-lg-6 col-md-6 col-sm-12 col-12">\n' +
' <div class="input-group mb-3">\n' +
' <span class="input-group-prepend">\n' +
' <div class="input-group-text bg-white border-right-0"><i class="fa fa-search"></i></div>\n' +
' </span>\n' +
' <input onkeyup="persist_search(\'room\')" class="search_input form-control py-2" type="text" value="'+search_val+'" placeholder="'+window.backend_labels.search_room+'" autocomplete="new-password" >\n' +
' <span class="input-group-append">\n' +
' <div onclick="clear_search(\'room\');" style="cursor: pointer;" class="input-group-text bg-gray-300 border-left-0"><i class="fa fa-times"></i></div>\n' +
' </span>\n' +
' </div>\n' +
' </div>\n' +
' <div class="col-lg-4 col-md-4 col-sm-8 col-8">\n' +
' <button data-toggle="modal" data-target="#modal_list_alt" class="btn btn-block btn-outline-secondary mb-3"><i class="fas fa-layer-group"></i> '+window.backend_labels.rooms_list+'</button>\n' +
' </div>\n' +
' <div class="col-lg-2 col-md-2 col-sm-4 col-4">\n' +
' <input id="view_type_toggle" type="checkbox" checked data-toggle="toggle" data-width="100%" data-on="'+window.backend_labels.list+'" data-off="'+window.backend_labels.grid+'" data-onstyle="light" data-offstyle="light">\n' +
' </div>\n' +
'</div>';
html_search += '</div></div>';
}
jQuery.each(rooms, function(index, room) {
var id = room.id;
var name = room.name;
var category = room.category;
var image = room.panorama_image;
var thumb_image = room.thumb_image_url;
var count_markers = room.count_markers;
var count_pois = room.count_pois;
var count_measures = room.count_measures;
var visible = parseInt(room.visible);
var panoramas_list = room.panoramas_list;
var aws_s3 = parseInt(room.aws_s3);
if(aws_s3==1) {
var aws_s3_url = room.aws_s3_url;
}
var array_panorams_r = [];
if(panoramas_list!='') {
array_panorams_r = panoramas_list.split(",");
}
if(category!='') {
var category_add = ' <i class="fas fa-layer-group"></i> '+category;
} else {
var category_add = "";
}
if(count_markers>0) {
var badge_markers = '<span style="top:-8px;right:-5px" class="badge badge-pill badge-secondary position-absolute">'+count_markers+'</span>';
} else {
var badge_markers = '';
}
if(count_pois>0) {
var badge_pois = '<span style="top:-8px;right:-5px" class="badge badge-pill badge-secondary position-absolute">'+count_pois+'</span>';
} else {
var badge_pois = '';
}
if(count_measures>0) {
var badge_measures = '<span style="top:-8px;right:-5px" class="badge badge-pill badge-secondary position-absolute">'+count_measures+'</span>';
} else {
var badge_measures = '';
}
var type = room.type;
switch (type) {
case 'image':
if(parseInt(room.multires)) {
type = '<i id="type_'+id+'" style="font-size: 14px" class="fas fa-images"></i>';
} else {
type = '<i id="type_'+id+'" style="font-size: 14px" class="fas fa-image"></i>';
}
if(parseInt(room.multires_status)==1) {
type = '<i id="type_'+id+'" style="font-size: 14px" class="fas fa-spin fa-cog"></i>';
}
break;
case 'video':
type = '<i id="type_'+id+'" style="font-size: 14px" class="fas fa-video"></i>';
break;
case 'hls':
type = '<i id="type_'+id+'" style="font-size: 14px" class="fas fa-film"></i>';
break;
case 'lottie':
type = '<i id="type_'+id+'" style="font-size: 14px" class="fab fa-deviantart"></i>';
break;
}
var btn_duplicate = '';
if(parseInt(window.can_create)==1 && permissions['create'] && window.ar_simulator==0) {
btn_duplicate = '<a title="'+window.backend_labels.duplicate.toUpperCase()+'" href="#" onclick="modal_duplicate_room('+id+');return false;" class="btn btn-secondary btn-sm btn_duplicate">\n' +
'<i class="fas fa-copy"></i>\n' +
'</a>\n';
}
var btn_markers = '';
var btn_measures = '';
var btn_drag = '';
if(window.ar_simulator==0) {
btn_markers = '<a title="'+window.backend_labels.markers.toUpperCase()+'" href="index.php?p=markers&id_room='+id+'" class="btn btn-info btn-sm position-relative">\n' +
'<i class="fas fa-caret-square-up"></i>\n' + badge_markers +
'</a>\n';
btn_measures = '<a title="'+window.backend_labels.measures.toUpperCase()+'" href="index.php?p=measurements&id_room='+id+'" class="btn btn-info btn-sm position-relative">\n' +
'<i class="fas fa-ruler-combined"></i>\n' + badge_measures +
'</a>\n';
btn_drag = '<a title="'+window.backend_labels.drag_change_pos.toUpperCase()+'" style="background-color: white; border: 1px solid black; cursor: pointer" class="handle btn btn-primary btn-sm">\n' +
'<i style="color: black" class="fas fa-arrows-alt"></i>\n' +
'</a>\n';
}
var btn_rename = '<i id="btn_view_rename_'+id+'" onclick="view_rename_room('+id+');" class="btn_view_rename fas fa-pen"></i>';
btn_rename += '<i id="btn_save_rename_'+id+'" onclick="save_rename_room('+id+');" class="btn_save_rename fas fa-check d-none"></i> ';
btn_rename += '<i id="btn_close_rename_'+id+'" onclick="close_rename_room('+id+');" class="btn_close_rename fas fa-times d-none"></i>';
var input_rename = '<input id="rename_input_'+id+'" class="rename_input d-none" type="text" value="'+name+'" />';
var class_visible = '';
if(visible==0) {
class_visible = 'room_hidden';
}
var img2 = '', img3 = '';
var o_position = 'center center';
if (array_panorams_r.hasOwnProperty(0)) {
if(aws_s3==1) {
var img2_src = aws_s3_url+'viewer/panoramas/thumb/'+array_panorams_r[0];
} else {
var img2_src = '../viewer/panoramas/thumb/'+array_panorams_r[0];
}
img2 = '<img class="img2_vt" loading="lazy" src="'+img2_src+'">';
}
if (array_panorams_r.hasOwnProperty(1)) {
if(aws_s3==1) {
var img3_src = aws_s3_url+'viewer/panoramas/thumb/'+array_panorams_r[1];
} else {
var img3_src = '../viewer/panoramas/thumb/'+array_panorams_r[1];
}
img3 = '<img class="img3_vt" loading="lazy" src="'+img3_src+'">';
o_position = '-15px center';
}
html += '<div class="div_room '+class_visible+' card mb-2 py-2">\n' +
' <div id="room_list" class="card-body" style="padding-top: 0;padding-bottom: 0;">\n' +
' <div data-id="'+id+'" class="row room">\n' +
' <div class="room_content col text-center text-sm-center text-md-left text-lg-left">\n' +
' <div style="width: 90px;height: 45px;overflow: hidden;border-radius: 6px;position: relative" class="d-inline-block align-middle"><img loading="lazy" style="width:100%;height:100%;object-fit:cover;object-position:'+o_position+'" src="'+thumb_image+'">'+img2+img3+'</div>\n' +
' <div class="room_info d-inline-block ml-2 align-middle text-left">'+type+' <b class="room_name" id="room_name_'+id+'">'+((name.length > 60) ? name.slice(0, 60) + "..." : name)+'</b>'+input_rename+' '+btn_rename+'<br><i style="font-size:12px"><i class="fas fa-caret-square-up"></i> '+count_markers+' '+window.backend_labels.markers+' <i class="fas fa-bullseye"></i> '+count_pois+' '+window.backend_labels.pois+''+category_add+'</i></div>\n' +
' </div>\n' +
' <div class="room_buttons col-md-auto pt-1 text-center text-sm-center text-md-right text-lg-right">\n' + btn_drag +
' <a title="'+window.backend_labels.edit.toUpperCase()+'" href="index.php?p=edit_room&id='+id+'" class="btn btn-warning btn-sm">\n' +
' <i class="fas fa-edit"></i>\n' +
' </a>\n' + btn_markers +
' <a title="'+window.backend_labels.pois.toUpperCase()+'" href="index.php?p=pois&id_room='+id+'" class="btn btn-info btn-sm position-relative">\n' +
' <i class="fas fa-bullseye"></i>\n' + badge_pois +
' </a>\n' + btn_measures + btn_duplicate +
' <a title="'+window.backend_labels.delete.toUpperCase()+'" href="#" onclick="modal_delete_room('+id+');return false;" class="btn btn-danger btn-sm">\n' +
' <i class="fas fa-trash"></i>\n' +
' </a>\n' +
' </div>\n' +
' </div>\n' +
' </div>\n' +
' </div>';
});
$('#rooms_list').html(html).promise().done(function () {
$('#search_div').html(html_search).promise().done(function () {
$('.rename_input').keydown(function (e) {
var keyCode = e.keyCode || e.which;
if (keyCode == 13) {
var id = $(this).attr('id').replace('rename_input_','');
save_rename_room(id);
}
});
$('#view_type_toggle').bootstrapToggle();
$('#view_type_toggle').change(function() {
var checked = $(this).prop('checked');
if(!checked) {
localStorage.setItem('room_view_type', 'grid');
$('.div_room').addClass('div_room_grid');
$('#rooms_list').css('margin','0 -5px');
$('#room_list .room .room_content').removeClass('text-lg-left').removeClass('text-md-left');
$('#room_list .room .room_buttons').removeClass('text-lg-right').removeClass('text-md-right');
$('#room_list .room .room_content').addClass('col-12');
$('#room_list .room .room_buttons').addClass('col-12').addClass('mt-1');
$('#room_list .room .room_buttons').addClass('col-auto').removeClass('col-md-auto');
$('#room_list .room .room_content .room_info').removeClass('text-left').addClass('text-center');
$('#room_list .room .room_content .room_info').css('width','100%');
} else {
localStorage.setItem('room_view_type', 'list');
$('.div_room').removeClass('div_room_grid');
$('#rooms_list').css('margin','0');
$('#room_list .room .room_content').addClass('text-lg-left').addClass('text-md-left');
$('#room_list .room .room_buttons').addClass('text-lg-right').addClass('text-md-right');
$('#room_list .room .room_content').removeClass('col-12');
$('#room_list .room .room_buttons').removeClass('col-12').removeClass('mt-1');
$('#room_list .room .room_buttons').removeClass('col-auto').addClass('col-md-auto');
$('#room_list .room .room_content .room_info').addClass('text-left').removeClass('text-center');
$('#room_list .room .room_content .room_info').css('width','auto');
}
});
if ("room_view_type" in localStorage) {
var view_type = localStorage.getItem('room_view_type');
switch (view_type) {
case 'list':
$('#view_type_toggle').bootstrapToggle('on');
break;
case 'grid':
$('#view_type_toggle').bootstrapToggle('off');
break;
}
}
if(!permissions['edit']) {
$('#rooms_list .fa-edit').parent().hide();
}
if(!permissions['delete']) {
$('#rooms_list .fa-trash').parent().hide();
}
if(window.user_role=='editor') {
$('#rooms_list .fa-arrows-alt').parent().hide();
}
$('#rooms_list').searchable({
selector : '.div_room',
childSelector : 'div',
searchField : '.search_input',
searchType : 'default',
clearOnLoad : false
});
$('#rooms_list .btn').tooltipster({
delay: 10,
hideOnClick: true
});
var el = document.getElementById('rooms_list');
Sortable.create(el,{
handle: '.handle',
filter: ".no_drag",
onMove: function (e) { return e.related.className.indexOf('no_drag') === -1; },
onEnd: function (evt) {
var array_rooms_priority = [];
$('#rooms_list .room').each(function () {
var id = $(this).attr('data-id');
array_rooms_priority.push(id);
});
change_rooms_order(array_rooms_priority);
},
});
var scrollpos = sessionStorage.getItem('scrollpos_room');
if (scrollpos) {
document.getElementById("content-wrapper").scrollTo(0,scrollpos);
sessionStorage.removeItem('scrollpos_room');
}
});
});
}
window.view_rename_room = function(id) {
$('#btn_view_rename_'+id).addClass('d-none');
$('#btn_save_rename_'+id).removeClass('d-none');
$('#btn_close_rename_'+id).removeClass('d-none');
$('#rename_input_'+id).removeClass('d-none');
$('#rename_input_'+id).select();
$('#room_name_'+id).addClass('d-none');
$('#type_'+id).addClass('d-none');
}
window.save_rename_room = function(id) {
var name = $('#rename_input_'+id).val();
if(name!='') {
$('#room_name_'+id).html(name);
$.ajax({
url: "ajax/rename_room.php",
type: "POST",
data: {
id: id,
name: name
},
async: true,
success: function (json) {
$('#btn_view_rename_'+id).removeClass('d-none');
$('#btn_save_rename_'+id).addClass('d-none');
$('#btn_close_rename_'+id).addClass('d-none');
$('#rename_input_'+id).addClass('d-none');
$('#room_name_'+id).removeClass('d-none');
$('#type_'+id).removeClass('d-none');
}
});
}
}
window.close_rename_room = function(id) {
$('#btn_view_rename_'+id).removeClass('d-none');
$('#btn_save_rename_'+id).addClass('d-none');
$('#btn_close_rename_'+id).addClass('d-none');
$('#rename_input_'+id).addClass('d-none');
$('#room_name_'+id).removeClass('d-none');
$('#type_'+id).removeClass('d-none');
}
function parse_rooms_menu_list(menu_list) {
var html = '<div class="col-md-12"><div class="dd"><ol class="dd-list">';
jQuery.each(menu_list, function(index, item) {
var id = item.id;
var name = item.name;
if(name.length>35) {
name = name.substring(0, 35)+'...';
}
var type = item.type;
var hide = item.hide;
switch (type) {
case 'room':
if(hide==0) {
html += '<li class="dd-item dd-nochildren" data-hide="0" data-type="room" data-id="'+id+'"><div class="dd-handle dd3-handle"></div><div class="dd3-content"><span style="opacity: 1.0"><i class="fas fa-fw fa-vector-square"></i> '+name+'</span> <i onclick="hide_menu_item(\''+id+'\')" style="float: right;cursor: pointer" class="fas fa-eye"></i></div></li>';
} else {
html += '<li class="dd-item dd-nochildren" data-hide="1" data-type="room" data-id="'+id+'"><div class="dd-handle dd3-handle"></div><div class="dd3-content"><span style="opacity: 0.5"><i class="fas fa-fw fa-vector-square"></i> '+name+'</span> <i onclick="show_menu_item(\''+id+'\')" style="float: right;cursor: pointer" class="fas fa-eye-slash"></i></div></li>';
}
break;
case 'category':
html += '<li class="dd-item" data-cat="'+name+'" data-type="category" data-id="'+id+'"><div class="dd-handle dd3-handle"></div><div class="dd3-content"><i class="fas fa-stream" style="vertical-align: super;"></i> <div class="category_editable" style="width: 70%;padding-left: 5px;display: inline-block;background-color: white;border: 1px solid lightgray;" contenteditable="true">'+name+'</div> <i onclick="remove_menu_item(\''+id+'\')" style="float: right;cursor: pointer" class="fas fa-trash"></i></div>';
var childrens = item.childrens;
if(childrens.length > 0) {
html += '<ol class="dd-list">';
for(var i=0;i<childrens.length;i++) {
if(childrens[i]['name'].length>35) {
childrens[i]['name'] = childrens[i]['name'].substring(0, 35)+'...';
}
if(childrens[i]['hide']==0) {
html += '<li class="dd-item dd-nochildren" data-hide="0" data-type="room" data-id="'+childrens[i]['id']+'"><div class="dd-handle dd3-handle"></div><div class="dd3-content"><span style="opacity: 1.0"><i class="fas fa-fw fa-vector-square"></i> '+childrens[i]['name']+'</span> <i onclick="hide_menu_item(\''+childrens[i]['id']+'\')" style="float: right;cursor: pointer" class="fas fa-eye"></i></div></li>';
} else {
html += '<li class="dd-item dd-nochildren" data-hide="1" data-type="room" data-id="'+childrens[i]['id']+'"><div class="dd-handle dd3-handle"></div><div class="dd3-content"><span style="opacity: 0.5"><i class="fas fa-fw fa-vector-square"></i> '+childrens[i]['name']+'</span> <i onclick="show_menu_item(\''+childrens[i]['id']+'\')" style="float: right;cursor: pointer" class="fas fa-eye-slash"></i></div></li>';
}
}
html += '</ol>';
}
html += '</li>';
break;
}
});
html += '</ol></div></div>';
try {
$('.dd').nestable('destroy');
} catch (e) {}
$('.list_div').html(html).promise().done(function () {
$('.dd3-content div').on('input',function () {
var cat = $(this).html();
$(this).parent().parent().attr('data-cat',cat);
$(this).parent().parent().data('cat',cat);
save_list_alt();
});
$('.dd').nestable({
scroll: false,
maxDepth: 2,
callback: function(l,e){
check_category_deletable();
save_list_alt();
}
});
check_category_deletable();
$('.add_cat_div').show();
});
}
function check_category_deletable() {
$(".dd-item[data-type='category']").each(function () {
if($(this).find('ol').hasClass('dd-list')) {
$(this).find('i.fa-trash').addClass('disabled');
} else {
$(this).find('i.fa-trash').removeClass('disabled');
}
});
}
function save_list_alt() {
var list_alt = $('.dd').nestable('serialize');
list_alt = JSON.stringify(list_alt);
$.ajax({
url: "ajax/save_list_alt.php",
type: "POST",
data: {
id_virtualtour: window.id_virtualtour,
list_alt: list_alt,
language: window.selected_language
},
async: true,
success: function (json) {}
});
}
window.add_menu_list_cat = function () {
var last_id_cat = $(".dd-item[data-type='category']").length;
if(last_id_cat==0) {
last_id_cat = 1;
} else {
last_id_cat++;
}
var add_cat = $('#add_cat').val();
if(add_cat != '') {
$(".dd > ol").append("<li class='dd-item' data-cat=\""+add_cat+"\" data-type='category' data-id='c"+last_id_cat+"'><div class='dd-handle dd3-handle'></div><div class='dd3-content'><i class=\"fas fa-stream\" style='vertical-align: super;'></i> <div class=\"category_editable\" style=\"width: 70%;padding-left: 5px;display: inline-block;background-color: white;border: 1px solid lightgray;\" contenteditable=\"true\">"+add_cat+"</div> <i onclick=\"remove_menu_item('c"+last_id_cat+"')\" style=\"float: right;cursor: pointer\" class=\"fas fa-trash\"></i></div></li>");
$('.dd3-content div').off('input');
$('.dd3-content div').on('input',function () {
var cat = $(this).html();
$(this).parent().parent().attr('data-cat',cat);
$(this).parent().parent().data('cat',cat);
save_list_alt();
});
}
$('#add_cat').val('');
}
window.remove_menu_item = function(id) {
$('.dd').nestable('remove', id);
save_list_alt();
}
window.hide_menu_item = function(id) {
$(".dd-item[data-id='"+id+"']").find('i.fa-eye').first().removeClass('fa-eye').addClass('fa-eye-slash');
$(".dd-item[data-id='"+id+"']").find('span').first().css('opacity',0.5);
$(".dd-item[data-id='"+id+"']").attr('data-hide','1');
$(".dd-item[data-id='"+id+"']").data('hide','1');
$(".dd-item[data-id='"+id+"']").find('i.fa-eye-slash').first().attr('onclick','show_menu_item(\''+id+'\')');
save_list_alt();
}
window.show_menu_item = function(id) {
$(".dd-item[data-id='"+id+"']").find('i.fa-eye-slash').first().removeClass('fa-eye-slash').addClass('fa-eye');
$(".dd-item[data-id='"+id+"']").find('span').first().css('opacity',1.0);
$(".dd-item[data-id='"+id+"']").attr('data-hide','0');
$(".dd-item[data-id='"+id+"']").data('hide','0');
$(".dd-item[data-id='"+id+"']").find('i.fa-eye').first().attr('onclick','hide_menu_item(\''+id+'\')');
save_list_alt();
}
function ai_get_styles() {
$.ajax({
url: "../services/ai_get_styles.php",
type: "POST",
data: {},
async: true,
success: function (json) {
var rsp = JSON.parse(json);
$('#ai_styles').empty();
jQuery.each(rsp,function(index,style) {
$('#ai_styles').append('<option data-max-char="'+style['max-char']+'" id="'+style.id+'">'+style.name+'</option>');
});
set_ai_prompt_max_lenght();
$('#ai_styles').prop('disabled',false);
window.ai_styles_loaded = true;
}
});
}
window.generate_ai_room = function() {
$('#btn_generate_ai_room').addClass('disabled');
var html_btn = $('#btn_generate_ai_room').html();
$('#btn_generate_ai_room').html("<i class='fas fa-circle-notch fa-spin'></i> <span id='ai_status'>sending</span>");
$('#preview_image_ai img').attr('src','');
$('#preview_image_ai').hide();
$('#preview_panorama_ai').hide();
$('#btn_close_panorama_ai').hide();
$('#btn_full_panorama_ai').hide();
$('#ai_image').val('');
$('#btn_create_room').prop('disabled',true);
var ai_prompt = $('#ai_prompt').val();
var ai_style = $('#ai_styles option:selected').attr('id');
var pusher = new Pusher('a6a7b7662238ce4494d5', {
cluster: 'mt1',
});
pusher.connection.bind( 'error', function( err ) {
$('#btn_generate_ai_room').removeClass('disabled');
$('#btn_generate_ai_room').html(html_btn);
});
pusher.connection.bind('connected', function() {
$.ajax({
url: "../services/ai_generate.php",
type: "POST",
data: {
prompt: ai_prompt,
style: ai_style
},
async: true,
success: function (json) {
var rsp = JSON.parse(json);
if(rsp.status=='ok') {
window.ai_generated = window.ai_generated + 1;
$('#num_ai_generated').html(window.ai_generated);
var ai_perc = calculatePercentage(parseInt(window.ai_generated),parseInt(window.n_ai_generate_month));
$('#progress_ai_generations .progress-bar').css('width',ai_perc+'%');
$('#progress_ai_generations .progress-bar').attr('aria-valuenow',ai_perc);
var pusher_channel = rsp.pusher_channel;
var pusher_event = rsp.pusher_event;
const channel = pusher.subscribe(pusher_channel);
channel.bind(pusher_event, function (data) {
var status = data.status;
$('#ai_status').html(status);
switch(status) {
case 'complete':
var ai_thumb_url = data.thumb_url;
var ai_file_url = data.file_url;
$('#ai_image').val(ai_file_url);
$('#preview_image_ai img').attr('src',ai_thumb_url);
$('#preview_image_ai').show();
$('#preview_image_ai img').show();
$('#btn_preview_panorama_ai').show();
load_viewer_preview_room('preview_panorama_ai',ai_file_url);
channel.unbind();
pusher.unsubscribe(pusher_channel);
pusher.disconnect();
$('#btn_generate_ai_room').removeClass('disabled');
$('#btn_generate_ai_room').html(html_btn);
if(parseInt(window.ai_generated)>=parseInt(window.n_ai_generate_month)) {
$('#btn_generate_ai_room').remove();
}
$('#btn_create_room').prop('disabled',false);
break;
case 'abort':
case 'error':
$('#btn_generate_ai_room').removeClass('disabled');
$('#btn_generate_ai_room').html(html_btn);
if(parseInt(window.ai_generated)>=parseInt(window.n_ai_generate_month)) {
$('#btn_generate_ai_room').remove();
}
break;
}
});
} else {
$('#btn_generate_ai_room').removeClass('disabled');
$('#btn_generate_ai_room').html(html_btn);
}
}, error: function() {
$('#btn_generate_ai_room').removeClass('disabled');
$('#btn_generate_ai_room').html(html_btn);
}
});
});
}
window.set_ai_prompt_max_lenght = function() {
var text_max = parseInt($('#ai_styles option:selected').attr('data-max-char'));
$('#ai_prompt').attr('maxlength',text_max);
var text_length = $('#ai_prompt').val().length;
$('#ai_count_message').html(text_length+' / ' + text_max );
$('#ai_prompt').keyup(function() {
var text_length = $('#ai_prompt').val().length;
if(text_length>0) {
$('#btn_generate_ai_room').removeClass('disabled');
} else {
$('#btn_generate_ai_room').addClass('disabled');
}
$('#ai_count_message').html(text_length + ' / ' + text_max);
});
}
function calculatePercentage(first, second) {
return (first / second) * 100;
}
window.change_room_type = function() {
var type = $('#type_pano option:selected').attr('id');
switch (type) {
case 'image':
$('#ai_room_div').hide();
$('#hls_div').hide();
$('#lottie_div').hide();
$('#label_panorama_type').html(window.backend_labels.panorama_image);
$('#room_upload_div #msg_accept_files').html('<i>'+window.backend_labels.panorama_image_msg+'</i>');
$('#frm').attr('action', 'ajax/upload_room_image.php');
$('#frm').show();
break;
case 'ai_room':
$('#hls_div').hide();
$('#lottie_div').hide();
$('#frm').hide();
$('#ai_room_div').show();
if(!window.ai_styles_loaded) {
ai_get_styles();
} else {
$('#ai_styles').prop('disabled',false);
}
break;
case 'video':
$('#ai_room_div').hide();
$('#hls_div').hide();
$('#lottie_div').hide();
$('#label_panorama_type').html(window.backend_labels.panorama_video);
$('#room_upload_div #msg_accept_files').html('<i>'+window.backend_labels.panorama_video_msg+'</i>');
$('#frm').attr('action', 'ajax/upload_room_video.php');
$('#frm').show();
break;
case 'hls':
$('#ai_room_div').hide();
$('#hls_div').show();
$('#lottie_div').hide();
$('#label_panorama_type').html(window.backend_labels.panorama_hls);
$('#room_upload_div #msg_accept_files').html('<i>'+window.backend_labels.panorama_hls_msg+'</i>');
$('#frm').attr('action', 'ajax/upload_room_image.php');
$('#frm').show();
break;
case 'lottie':
$('#ai_room_div').hide();
$('#hls_div').hide();
$('#lottie_div').show();
$('#label_panorama_type').html(window.backend_labels.panorama_lottie);
$('#room_upload_div #msg_accept_files').html('<i>'+window.backend_labels.panorama_lottie_msg+'</i>');
$('#frm').attr('action', 'ajax/upload_room_image.php');
$('#frm').show();
break;
}
$('#frm')[0].reset();
$('#frm_l')[0].reset();
$('#preview_lottie').html('');
$('#preview_image img').attr('src','');
$('#preview_image').hide();
$('#preview_image_ai img').attr('src','');
$('#preview_image_ai').hide();
$('#btn_preview_panorama_ai').hide();
$('#btn_preview_panorama_image').hide();
$('#btn_close_panorama_ai').hide();
$('#btn_close_panorama_image').hide();
$('#btn_full_panorama_image').hide();
$('#btn_full_panorama_ai').hide();
$('#btn_create_room').prop("disabled",true);
}
window.add_showcase = function () {
var complete = true;
var name = $('#name').val();
if(name=='') {
complete = false;
$('#name').addClass("error-highlight");
} else {
$('#name').removeClass("error-highlight");
}
if(complete) {
$('#modal_new_showcase button').addClass("disabled");
$.ajax({
url: "ajax/add_showcase.php",
type: "POST",
data: {
name: name
},
async: true,
success: function (json) {
var rsp = JSON.parse(json);
if (rsp.status == "ok") {
$('#modal_new_showcase button').removeClass("disabled");
location.href='index.php?p=edit_showcase&id='+rsp.id;
} else {
alert(rsp.msg);
$('#modal_new_showcase button').removeClass("disabled");
}
}
});
}
};
window.add_globe = function () {
var complete = true;
var name = $('#name').val();
if(name=='') {
complete = false;
$('#name').addClass("error-highlight");
} else {
$('#name').removeClass("error-highlight");
}
if(complete) {
$('#modal_new_globe button').addClass("disabled");
$.ajax({
url: "ajax/add_globe.php",
type: "POST",
data: {
name: name
},
async: true,
success: function (json) {
var rsp = JSON.parse(json);
if (rsp.status == "ok") {
$('#modal_new_globe button').removeClass("disabled");
location.href='index.php?p=edit_globe&id='+rsp.id;
} else {
alert(rsp.msg);
$('#modal_new_globe button').removeClass("disabled");
}
}
});
}
};
window.add_product = function () {
var complete = true;
var name = $('#name').val();
var price = $('#price').val();
if(name=='') {
complete = false;
$('#name').addClass("error-highlight");
} else {
$('#name').removeClass("error-highlight");
}
if(complete) {
$('#modal_new_product button').addClass("disabled");
$.ajax({
url: "ajax/add_product.php",
type: "POST",
data: {
id_virtualtour: window.id_virtualtour,
name: name,
price: price
},
async: true,
success: function (json) {
var rsp = JSON.parse(json);
if (rsp.status == "ok") {
$('#modal_new_product button').removeClass("disabled");
location.href='index.php?p=edit_product&id='+rsp.id;
} else {
alert(rsp.msg);
$('#modal_new_product button').removeClass("disabled");
}
}
});
}
};
window.add_video = function () {
var complete = true;
var name = $('#name').val();
if(name=='') {
complete = false;
$('#name').addClass("error-highlight");
} else {
$('#name').removeClass("error-highlight");
}
if(complete) {
$('#modal_new_video button').addClass("disabled");
$.ajax({
url: "ajax/add_video.php",
type: "POST",
data: {
id_virtualtour: window.id_virtualtour,
name: name,
},
async: true,
success: function (json) {
var rsp = JSON.parse(json);
if (rsp.status == "ok") {
$('#modal_new_video button').removeClass("disabled");
location.href='index.php?p=edit_video&id='+rsp.id;
} else {
alert(rsp.msg);
$('#modal_new_video button').removeClass("disabled");
}
}
});
}
};
window.add_advertisement = function () {
var complete = true;
var name = $('#name').val();
if(name=='') {
complete = false;
$('#name').addClass("error-highlight");
} else {
$('#name').removeClass("error-highlight");
}
if(complete) {
$('#modal_new_advertisement button').addClass("disabled");
$.ajax({
url: "ajax/add_announce.php",
type: "POST",
data: {
name: name
},
async: true,
success: function (json) {
var rsp = JSON.parse(json);
if (rsp.status == "ok") {
$('#modal_new_advertisement button').removeClass("disabled");
location.href='index.php?p=edit_advertisement&id='+rsp.id;
} else {
alert(rsp.msg);
$('#modal_new_advertisement button').removeClass("disabled");
}
}
});
}
};
window.add_user = function () {
var complete = true;
var username = $('#username').val();
var email = $('#email').val();
var role = $('#role option:selected').attr('id');
var password = $('#password').val();
var password2 = $('#repeat_password').val();
if(username=='') {
complete = false;
$('#username').addClass("error-highlight");
} else {
$('#username').removeClass("error-highlight");
}
if(email=='') {
complete = false;
$('#email').addClass("error-highlight");
} else {
$('#email').removeClass("error-highlight");
}
if(password=='') {
complete = false;
$('#password').addClass("error-highlight");
} else {
$('#password').removeClass("error-highlight");
}
if(password2=='') {
complete = false;
$('#repeat_password').addClass("error-highlight");
} else {
$('#repeat_password').removeClass("error-highlight");
}
if((password!='') && (password2!='')) {
if(password!=password2) {
complete = false;
$('#password').addClass("error-highlight");
$('#repeat_password').addClass("error-highlight");
} else {
$('#password').removeClass("error-highlight");
$('#repeat_password').removeClass("error-highlight");
}
}
if(complete) {
$('#modal_new_user button').addClass("disabled");
$.ajax({
url: "ajax/add_user.php",
type: "POST",
data: {
username_svt: username,
email_svt: email,
password_svt: password,
role_svt: role
},
async: true,
success: function (json) {
var rsp = JSON.parse(json);
if (rsp.status == "ok") {
$.ajax({
url: "ajax/send_email.php",
type: "POST",
data: {
type: 'user_add',
email: email,
id_user: rsp.id_user,
password_svt: password
},
timeout: 15000,
async: true,
success: function () {
$('#modal_new_user button').removeClass("disabled");
$('#modal_new_user').modal("hide");
location.reload();
},
error: function(){
$('#modal_new_user button').removeClass("disabled");
$('#modal_new_user').modal("hide");
location.reload();
},
});
} else {
alert(rsp.msg);
$('#modal_new_user button').removeClass("disabled");
}
}
});
}
};
window.change_password = function () {
var complete = true;
var password = $('#password').val();
var password2 = $('#repeat_password').val();
if(password=='') {
complete = false;
$('#password').addClass("error-highlight");
} else {
$('#password').removeClass("error-highlight");
}
if(password2=='') {
complete = false;
$('#repeat_password').addClass("error-highlight");
} else {
$('#repeat_password').removeClass("error-highlight");
}
if((password!='') && (password2!='')) {
if(password!=password2) {
complete = false;
$('#password').addClass("error-highlight");
$('#repeat_password').addClass("error-highlight");
} else {
$('#password').removeClass("error-highlight");
$('#repeat_password').removeClass("error-highlight");
}
}
if(complete) {
$('#modal_change_password button').addClass("disabled");
$.ajax({
url: "ajax/change_password.php",
type: "POST",
data: {
id_svt: window.id_user_edit,
password_svt: password,
},
async: true,
success: function (json) {
var rsp = JSON.parse(json);
if (rsp.status == "ok") {
window.user_need_save = false;
$('#modal_change_password button').removeClass("disabled");
$('#modal_change_password').modal("hide");
$('#password').val('');
$('#repeat_password').val('');
} else {
$('#modal_change_password button').removeClass("disabled");
}
}
});
}
};
window.delete_plan = function () {
var retVal = confirm(window.backend_labels.delete_sure_msg);
if( retVal == true ) {
$('#modal_edit_plan button').addClass("disabled");
$.ajax({
url: "ajax/delete_plan.php",
type: "POST",
data: {
id: window.id_plan_sel
},
async: true,
success: function (json) {
var rsp = JSON.parse(json);
if (rsp.status == "ok") {
$('#modal_edit_plan button').removeClass("disabled");
$('#modal_edit_plan').modal("hide");
window.plan_need_save = false;
window.plans_table.ajax.reload();
} else {
alert(rsp.msg);
$('#modal_edit_plan button').removeClass("disabled");
}
}
});
} else {
return false;
}
};
window.open_modal_plan_edit = function(id) {
$.ajax({
url: "ajax/get_plan.php",
type: "POST",
data: {
id: id
},
async: true,
success: function (json) {
var rsp = JSON.parse(json);
$('#name_edit').val(rsp.name);
$('#n_virtual_tours_edit').val(rsp.n_virtual_tours);
$('#n_rooms_edit').val(rsp.n_rooms);
$('#n_rooms_tour_edit').val(rsp.n_rooms_tour);
$('#n_markers_edit').val(rsp.n_markers);
$('#n_pois_edit').val(rsp.n_pois);
$('#n_gallery_images_edit').val(rsp.n_gallery_images);
$('#n_ai_generate_month_edit').val(rsp.n_ai_generate_month);
$('#days_edit').val(rsp.days);
$('#price_edit').val(rsp.price);
$('#price2_edit').val(rsp.price2);
$("#frequency_edit option[id='"+rsp.frequency+"']").prop("selected", true);
$('#interval_count_edit').val(rsp.interval_count);
change_frequency('_edit');
$('#max_file_size_upload_edit').val(rsp.max_file_size_upload);
$('#max_storage_space_edit').val(rsp.max_storage_space);
$("#currency_edit option").prop("selected", false);
$("#currency_edit option[id='"+rsp.currency+"']").prop("selected", true);
$("#expire_tours_edit option[id='"+rsp.expire_tours+"']").prop("selected", true);
$('#features_edit #create_landing_edit').prop('selected',(rsp.create_landing==1)?true:false);
$('#features_edit #create_showcase_edit').prop('selected',(rsp.create_showcase==1)?true:false);
$('#features_edit #create_globes_edit').prop('selected',(rsp.create_globes==1)?true:false);
$('#features_edit #create_gallery_edit').prop('selected',(rsp.create_gallery==1)?true:false);
$('#features_edit #enable_download_slideshow_edit').prop('selected',(rsp.enable_download_slideshow==1)?true:false);
$('#features_edit #create_presentation_edit').prop('selected',(rsp.create_presentation==1)?true:false);
$('#features_edit #create_video360_edit').prop('selected',(rsp.create_video360==1)?true:false);
$('#features_edit #create_video_projects_edit').prop('selected',(rsp.create_video_projects==1)?true:false);
$('#features_edit #enable_live_session_edit').prop('selected',(rsp.enable_live_session==1)?true:false);
$('#features_edit #enable_meeting_edit').prop('selected',(rsp.enable_meeting==1)?true:false);
$('#features_edit #enable_info_box_edit').prop('selected',(rsp.enable_info_box==1)?true:false);
$('#features_edit #enable_context_info_edit').prop('selected',(rsp.enable_context_info==1)?true:false);
$('#features_edit #enable_maps_edit').prop('selected',(rsp.enable_maps==1)?true:false);
$('#features_edit #enable_icons_library_edit').prop('selected',(rsp.enable_icons_library==1)?true:false);
$('#features_edit #enable_media_library_edit').prop('selected',(rsp.enable_media_library==1)?true:false);
$('#features_edit #enable_music_library_edit').prop('selected',(rsp.enable_music_library==1)?true:false);
$('#features_edit #enable_sound_library_edit').prop('selected',(rsp.enable_sound_library==1)?true:false);
$('#features_edit #enable_voice_commands_edit').prop('selected',(rsp.enable_voice_commands==1)?true:false);
$('#features_edit #enable_chat_edit').prop('selected',(rsp.enable_chat==1)?true:false);
$('#features_edit #enable_auto_rotate_edit').prop('selected',(rsp.enable_auto_rotate==1)?true:false);
$('#features_edit #enable_flyin_edit').prop('selected',(rsp.enable_flyin==1)?true:false);
$('#features_edit #enable_multires_edit').prop('selected',(rsp.enable_multires==1)?true:false);
$('#features_edit #enable_password_tours_edit').prop('selected',(rsp.enable_password_tour==1)?true:false);
$('#features_edit #enable_expiring_dates_edit').prop('selected',(rsp.enable_expiring_dates==1)?true:false);
$('#features_edit #enable_export_vt_edit').prop('selected',(rsp.enable_export_vt==1)?true:false);
$('#features_edit #enable_statistics_edit').prop('selected',(rsp.enable_statistics==1)?true:false);
$('#features_edit #enable_multilanguage_edit').prop('selected',(rsp.enable_multilanguage==1)?true:false);
$('#features_edit #enable_auto_translation_edit').prop('selected',(rsp.enable_auto_translation==1)?true:false);
$('#features_edit #enable_forms_edit').prop('selected',(rsp.enable_forms==1)?true:false);
$('#features_edit #enable_logo_edit').prop('selected',(rsp.enable_logo==1)?true:false);
$('#features_edit #enable_poweredby_edit').prop('selected',(rsp.enable_poweredby==1)?true:false);
$('#features_edit #enable_nadir_logo_edit').prop('selected',(rsp.enable_nadir_logo==1)?true:false);
$('#features_edit #enable_song_edit').prop('selected',(rsp.enable_song==1)?true:false);
$('#features_edit #enable_comments_edit').prop('selected',(rsp.enable_comments==1)?true:false);
$('#features_edit #enable_annotations_edit').prop('selected',(rsp.enable_annotations==1)?true:false);
$('#features_edit #enable_panorama_video_edit').prop('selected',(rsp.enable_panorama_video==1)?true:false);
$('#features_edit #enable_ai_room_edit').prop('selected',(rsp.enable_ai_room==1)?true:false);
$('#features_edit #enable_rooms_multiple_edit').prop('selected',(rsp.enable_rooms_multiple==1)?true:false);
$('#features_edit #enable_rooms_protect_edit').prop('selected',(rsp.enable_rooms_protect==1)?true:false);
$('#features_edit #enable_share_edit').prop('selected',(rsp.enable_share==1)?true:false);
$('#features_edit #enable_device_orientation_edit').prop('selected',(rsp.enable_device_orientation==1)?true:false);
$('#features_edit #enable_webvr_edit').prop('selected',(rsp.enable_webvr==1)?true:false);
$('#features_edit #enable_shop_edit').prop('selected',(rsp.enable_shop==1)?true:false);
$('#features_edit #enable_dollhouse_edit').prop('selected',(rsp.enable_dollhouse==1)?true:false);
$('#features_edit #enable_editor_ui_edit').prop('selected',(rsp.enable_editor_ui==1)?true:false);
$('#features_edit #enable_custom_html_edit').prop('selected',(rsp.enable_custom_html==1)?true:false);
$('#features_edit #enable_metatag_edit').prop('selected',(rsp.enable_metatag==1)?true:false);
$('#features_edit #enable_loading_iv_edit').prop('selected',(rsp.enable_loading_iv==1)?true:false);
$('#features_edit #enable_measurements_edit').prop('selected',(rsp.enable_measurements==1)?true:false);
$('#features_edit').selectpicker('refresh');
var count_usage = rsp.count_usage;
if(count_usage>0) {
$('#btn_delete_plan').addClass("disabled");
} else {
$('#btn_delete_plan').removeClass("disabled");
}
if(rsp.visible==1) {
$('#visible_edit').prop('checked',true);
} else {
$('#visible_edit').prop('checked',false);
}
$('#external_url_edit').val(rsp.external_url);
$('#custom_features_edit').val(rsp.custom_features);
var customize_menu = rsp.customize_menu;
$('#customize_menu_edit option').prop('selected',true);
$('#customize_menu_edit option[data-divider="true"]').prop('selected',false);
if(customize_menu!='') {
var menu_items = JSON.parse(customize_menu);
jQuery.each(menu_items,function (menu_item,enabled) {
$('#customize_menu_edit #'+menu_item).prop('selected',enabled);
});
}
$('#customize_menu_edit').selectpicker('refresh');
$("#button_type_edit option[id='"+rsp.button_type+"']").prop("selected", true);
switch(rsp.button_type) {
case 'custom':
$('#button_text_edit').prop('disabled',false);
$('#GetIconPicker_edit').prop('disabled',false);
$('#button_icon_preview_edit').show();
break;
default:
$('#button_text_edit').prop('disabled',true);
$('#GetIconPicker_edit').prop('disabled',true);
$('#button_icon_preview_edit').hide();
break;
}
$("#button_text_edit").val(rsp.button_text);
$("#button_icon_edit").val(rsp.button_icon);
$("#button_icon_preview_edit").addClass(rsp.button_icon);
$('#modal_edit_plan').modal("show");
}
});
};
window.add_plan = function () {
var complete = true;
var name = $('#name').val();
var n_virtual_tours = $('#n_virtual_tours').val();
var n_rooms = $('#n_rooms').val();
var n_rooms_tour = $('#n_rooms_tour').val();
var n_markers = $('#n_markers').val();
var n_pois = $('#n_pois').val();
var n_gallery_images = $('#n_gallery_images').val();
var n_ai_generate_month = $('#n_ai_generate_month').val();
var max_file_size_upload = $('#max_file_size_upload').val();
var max_storace_space = $('#max_storage_space').val();
var create_landing = ($('#features option[id="create_landing"]').is(':selected')) ? 1 : 0;
var create_showcase = ($('#features option[id="create_showcase"]').is(':selected')) ? 1 : 0;
var create_globes = ($('#features option[id="create_globes"]').is(':selected')) ? 1 : 0;
var create_gallery = ($('#features option[id="create_gallery"]').is(':selected')) ? 1 : 0;
var enable_download_slideshow = ($('#features option[id="enable_download_slideshow"]').is(':selected')) ? 1 : 0;
var create_presentation = ($('#features option[id="create_presentation"]').is(':selected')) ? 1 : 0;
var create_video360 = ($('#features option[id="create_video360"]').is(':selected')) ? 1 : 0;
var create_video_projects = ($('#features option[id="create_video_projects"]').is(':selected')) ? 1 : 0;
var enable_live_session = ($('#features option[id="enable_live_session"]').is(':selected')) ? 1 : 0;
var enable_meeting = ($('#features option[id="enable_meeting"]').is(':selected')) ? 1 : 0;
var enable_chat = ($('#features option[id="enable_chat"]').is(':selected')) ? 1 : 0;
var enable_voice_commands = ($('#features option[id="enable_voice_commands"]').is(':selected')) ? 1 : 0;
var enable_share = ($('#features option[id="enable_share"]').is(':selected')) ? 1 : 0;
var enable_device_orientation = ($('#features option[id="enable_device_orientation"]').is(':selected')) ? 1 : 0;
var enable_webvr = ($('#features option[id="enable_webvr"]').is(':selected')) ? 1 : 0;
var enable_logo = ($('#features option[id="enable_logo"]').is(':selected')) ? 1 : 0;
var enable_poweredby = ($('#features option[id="enable_poweredby"]').is(':selected')) ? 1 : 0;
var enable_nadir_logo = ($('#features option[id="enable_nadir_logo"]').is(':selected')) ? 1 : 0;
var enable_song = ($('#features option[id="enable_song"]').is(':selected')) ? 1 : 0;
var enable_comments = ($('#features option[id="enable_comments"]').is(':selected')) ? 1 : 0;
var enable_forms = ($('#features option[id="enable_forms"]').is(':selected')) ? 1 : 0;
var enable_annotations = ($('#features option[id="enable_annotations"]').is(':selected')) ? 1 : 0;
var enable_panorama_video = ($('#features option[id="enable_panorama_video"]').is(':selected')) ? 1 : 0;
var enable_ai_room = ($('#features option[id="enable_ai_room"]').is(':selected')) ? 1 : 0;
var enable_rooms_multiple = ($('#features option[id="enable_rooms_multiple"]').is(':selected')) ? 1 : 0;
var enable_rooms_protect = ($('#features option[id="enable_rooms_protect"]').is(':selected')) ? 1 : 0;
var enable_info_box = ($('#features option[id="enable_info_box"]').is(':selected')) ? 1 : 0;
var enable_context_info = ($('#features option[id="enable_context_info"]').is(':selected')) ? 1 : 0;
var enable_maps = ($('#features option[id="enable_maps"]').is(':selected')) ? 1 : 0;
var enable_icons_library = ($('#features option[id="enable_icons_library"]').is(':selected')) ? 1 : 0;
var enable_media_library = ($('#features option[id="enable_media_library"]').is(':selected')) ? 1 : 0;
var enable_music_library = ($('#features option[id="enable_music_library"]').is(':selected')) ? 1 : 0;
var enable_sound_library = ($('#features option[id="enable_sound_library"]').is(':selected')) ? 1 : 0;
var enable_password_tour = ($('#features option[id="enable_password_tours"]').is(':selected')) ? 1 : 0;
var enable_expiring_dates = ($('#features option[id="enable_expiring_dates"]').is(':selected')) ? 1 : 0;
var enable_export_vt = ($('#features option[id="enable_export_vt"]').is(':selected')) ? 1 : 0;
var enable_statistics = ($('#features option[id="enable_statistics"]').is(':selected')) ? 1 : 0;
var enable_multilanguage = ($('#features option[id="enable_multilanguage"]').is(':selected')) ? 1 : 0;
var enable_auto_translation = ($('#features option[id="enable_auto_translation"]').is(':selected')) ? 1 : 0;
var enable_auto_rotate = ($('#features option[id="enable_auto_rotate"]').is(':selected')) ? 1 : 0;
var enable_flyin = ($('#features option[id="enable_flyin"]').is(':selected')) ? 1 : 0;
var enable_multires = ($('#features option[id="enable_multires"]').is(':selected')) ? 1 : 0;
var enable_shop = ($('#features option[id="enable_shop"]').is(':selected')) ? 1 : 0;
var enable_dollhouse = ($('#features option[id="enable_dollhouse"]').is(':selected')) ? 1 : 0;
var enable_editor_ui = ($('#features option[id="enable_editor_ui"]').is(':selected')) ? 1 : 0;
var enable_custom_html = ($('#features option[id="enable_custom_html"]').is(':selected')) ? 1 : 0;
var enable_metatag = ($('#features option[id="enable_metatag"]').is(':selected')) ? 1 : 0;
var enable_loading_iv = ($('#features option[id="enable_loading_iv"]').is(':selected')) ? 1 : 0;
var enable_measurements = ($('#features option[id="enable_measurements"]').is(':selected')) ? 1 : 0;
var days = $('#days').val();
var price = $('#price').val();
var price2 = $('#price2').val();
var frequency = $('#frequency option:selected').attr('id');
var interval_count = $('#interval_count').val();
var currency = $('#currency option:selected').attr('id');
var visible = ($('#visible').is(':checked')) ? 1 : 0;
var external_url = $('#external_url').val();
var expire_tours = $('#expire_tours option:selected').attr('id');
var custom_features = $('#custom_features').val();
var customize_menu_edit_t = $('#customize_menu option');
var customize_menu = {};
$(customize_menu_edit_t).each(function(index, elem){
var id = $(this).attr('id');
if(id !== undefined) {
if($(this).is(':selected')) {
customize_menu[id]=1;
} else {
customize_menu[id]=0;
}
}
});
var customize_menu_json = JSON.stringify(customize_menu);
if(name=='') {
complete = false;
$('#name').addClass("error-highlight");
} else {
$('#name').removeClass("error-highlight");
}
var button_type = $('#button_type option:selected').attr('id');
var button_text = $('#button_text').val();
var button_icon = $('#button_icon').val();
if(complete) {
$('#modal_new_plan button').addClass("disabled");
$.ajax({
url: "ajax/add_plan.php",
type: "POST",
data: {
name: name,
n_virtual_tours: n_virtual_tours,
n_rooms: n_rooms,
n_rooms_tour: n_rooms_tour,
n_markers: n_markers,
n_pois: n_pois,
n_gallery_images: n_gallery_images,
n_ai_generate_month: n_ai_generate_month,
days: days,
price: price,
price2: price2,
currency: currency,
custom_features: custom_features,
create_landing: create_landing,
create_showcase: create_showcase,
create_globes: create_globes,
create_gallery: create_gallery,
enable_download_slideshow: enable_download_slideshow,
create_presentation: create_presentation,
create_video360: create_video360,
create_video_projects: create_video_projects,
enable_live_session: enable_live_session,
enable_meeting: enable_meeting,
max_file_size_upload: max_file_size_upload,
max_storace_space: max_storace_space,
enable_chat: enable_chat,
enable_voice_commands: enable_voice_commands,
enable_share: enable_share,
enable_device_orientation: enable_device_orientation,
enable_webvr: enable_webvr,
enable_logo: enable_logo,
enable_poweredby: enable_poweredby,
enable_nadir_logo: enable_nadir_logo,
enable_song: enable_song,
enable_comments: enable_comments,
enable_forms: enable_forms,
enable_annotations: enable_annotations,
enable_panorama_video: enable_panorama_video,
enable_ai_room: enable_ai_room,
enable_rooms_multiple: enable_rooms_multiple,
enable_rooms_protect: enable_rooms_protect,
enable_info_box: enable_info_box,
enable_context_info: enable_context_info,
enable_maps: enable_maps,
enable_icons_library: enable_icons_library,
enable_media_library: enable_media_library,
enable_music_library: enable_music_library,
enable_sound_library: enable_sound_library,
enable_password_tour: enable_password_tour,
enable_expiring_dates: enable_expiring_dates,
enable_export_vt: enable_export_vt,
enable_statistics: enable_statistics,
enable_multilanguage: enable_multilanguage,
enable_auto_translation: enable_auto_translation,
enable_auto_rotate: enable_auto_rotate,
enable_flyin: enable_flyin,
enable_multires: enable_multires,
enable_shop: enable_shop,
enable_dollhouse: enable_dollhouse,
enable_editor_ui: enable_editor_ui,
enable_custom_html: enable_custom_html,
enable_metatag: enable_metatag,
enable_loading_iv: enable_loading_iv,
enable_measurements: enable_measurements,
visible: visible,
external_url: external_url,
frequency: frequency,
interval_count: interval_count,
customize_menu: customize_menu_json,
expire_tours: expire_tours,
button_type: button_type,
button_text: button_text,
button_icon: button_icon
},
async: true,
success: function (json) {
var rsp = JSON.parse(json);
if (rsp.status == "ok") {
$('#modal_new_plan button').removeClass("disabled");
$('#modal_new_plan').modal("hide");
window.plan_need_save = false;
window.plans_table.ajax.reload();
if(window.stripe_enabled) {
stripe_initialize(rsp.id,0);
}
if(window.paypal_enabled) {
paypal_initialize(rsp.id,0);
}
if(max_storace_space!=-1) {
$.ajax({
url: "../services/calculate_storage_space.php",
type: "POST",
async: true,
success: function (json) {}
});
}
} else {
$('#modal_new_plan button').removeClass("disabled");
}
}
});
}
};
window.save_plan = function () {
var complete = true;
var name = $('#name_edit').val();
var n_virtual_tours = $('#n_virtual_tours_edit').val();
var n_rooms = $('#n_rooms_edit').val();
var n_rooms_tour = $('#n_rooms_tour_edit').val();
var n_markers = $('#n_markers_edit').val();
var n_pois = $('#n_pois_edit').val();
var n_gallery_images = $('#n_gallery_images_edit').val();
var n_ai_generate_month = $('#n_ai_generate_month_edit').val();
var days = $('#days_edit').val();
var max_file_size_upload = $('#max_file_size_upload_edit').val();
var max_storace_space = $('#max_storage_space_edit').val();
var create_landing = ($('#features_edit option[id="create_landing_edit"]').is(':selected')) ? 1 : 0;
var create_showcase = ($('#features_edit option[id="create_showcase_edit"]').is(':selected')) ? 1 : 0;
var create_globes = ($('#features_edit option[id="create_globes_edit"]').is(':selected')) ? 1 : 0;
var create_gallery = ($('#features_edit option[id="create_gallery_edit"]').is(':selected')) ? 1 : 0;
var enable_download_slideshow = ($('#features_edit option[id="enable_download_slideshow_edit"]').is(':selected')) ? 1 : 0;
var create_presentation = ($('#features_edit option[id="create_presentation_edit"]').is(':selected')) ? 1 : 0;
var create_video360 = ($('#features_edit option[id="create_video360_edit"]').is(':selected')) ? 1 : 0;
var create_video_projects = ($('#features_edit option[id="create_video_projects_edit"]').is(':selected')) ? 1 : 0;
var enable_live_session = ($('#features_edit option[id="enable_live_session_edit"]').is(':selected')) ? 1 : 0;
var enable_meeting = ($('#features_edit option[id="enable_meeting_edit"]').is(':selected')) ? 1 : 0;
var enable_chat = ($('#features_edit option[id="enable_chat_edit"]').is(':selected')) ? 1 : 0;
var enable_voice_commands = ($('#features_edit option[id="enable_voice_commands_edit"]').is(':selected')) ? 1 : 0;
var enable_share = ($('#features_edit option[id="enable_share_edit"]').is(':selected')) ? 1 : 0;
var enable_device_orientation = ($('#features_edit option[id="enable_device_orientation_edit"]').is(':selected')) ? 1 : 0;
var enable_webvr = ($('#features_edit option[id="enable_webvr_edit"]').is(':selected')) ? 1 : 0;
var enable_logo = ($('#features_edit option[id="enable_logo_edit"]').is(':selected')) ? 1 : 0;
var enable_poweredby = ($('#features_edit option[id="enable_poweredby_edit"]').is(':selected')) ? 1 : 0;
var enable_nadir_logo = ($('#features_edit option[id="enable_nadir_logo_edit"]').is(':selected')) ? 1 : 0;
var enable_song = ($('#features_edit option[id="enable_song_edit"]').is(':selected')) ? 1 : 0;
var enable_comments = ($('#features_edit option[id="enable_comments_edit"]').is(':selected')) ? 1 : 0;
var enable_forms = ($('#features_edit option[id="enable_forms_edit"]').is(':selected')) ? 1 : 0;
var enable_annotations = ($('#features_edit option[id="enable_annotations_edit"]').is(':selected')) ? 1 : 0;
var enable_panorama_video = ($('#features_edit option[id="enable_panorama_video_edit"]').is(':selected')) ? 1 : 0;
var enable_ai_room = ($('#features_edit option[id="enable_ai_room_edit"]').is(':selected')) ? 1 : 0;
var enable_rooms_multiple = ($('#features_edit option[id="enable_rooms_multiple_edit"]').is(':selected')) ? 1 : 0;
var enable_rooms_protect = ($('#features_edit option[id="enable_rooms_protect_edit"]').is(':selected')) ? 1 : 0;
var enable_info_box = ($('#features_edit option[id="enable_info_box_edit"]').is(':selected')) ? 1 : 0;
var enable_context_info = ($('#features_edit option[id="enable_context_info_edit"]').is(':selected')) ? 1 : 0;
var enable_maps = ($('#features_edit option[id="enable_maps_edit"]').is(':selected')) ? 1 : 0;
var enable_icons_library = ($('#features_edit option[id="enable_icons_library_edit"]').is(':selected')) ? 1 : 0;
var enable_media_library = ($('#features_edit option[id="enable_media_library_edit"]').is(':selected')) ? 1 : 0;
var enable_music_library = ($('#features_edit option[id="enable_music_library_edit"]').is(':selected')) ? 1 : 0;
var enable_sound_library = ($('#features_edit option[id="enable_sound_library_edit"]').is(':selected')) ? 1 : 0;
var enable_password_tour = ($('#features_edit option[id="enable_password_tours_edit"]').is(':selected')) ? 1 : 0;
var enable_expiring_dates = ($('#features_edit option[id="enable_expiring_dates_edit"]').is(':selected')) ? 1 : 0;
var enable_export_vt = ($('#features_edit option[id="enable_export_vt_edit"]').is(':selected')) ? 1 : 0;
var enable_statistics = ($('#features_edit option[id="enable_statistics_edit"]').is(':selected')) ? 1 : 0;
var enable_multilanguage = ($('#features_edit option[id="enable_multilanguage_edit"]').is(':selected')) ? 1 : 0;
var enable_auto_translation = ($('#features_edit option[id="enable_auto_translation_edit"]').is(':selected')) ? 1 : 0;
var enable_auto_rotate = ($('#features_edit option[id="enable_auto_rotate_edit"]').is(':selected')) ? 1 : 0;
var enable_flyin = ($('#features_edit option[id="enable_flyin_edit"]').is(':selected')) ? 1 : 0;
var enable_multires = ($('#features_edit option[id="enable_multires_edit"]').is(':selected')) ? 1 : 0;
var enable_shop = ($('#features_edit option[id="enable_shop_edit"]').is(':selected')) ? 1 : 0;
var enable_dollhouse = ($('#features_edit option[id="enable_dollhouse_edit"]').is(':selected')) ? 1 : 0;
var enable_editor_ui = ($('#features_edit option[id="enable_editor_ui_edit"]').is(':selected')) ? 1 : 0;
var enable_custom_html = ($('#features_edit option[id="enable_custom_html_edit"]').is(':selected')) ? 1 : 0;
var enable_metatag = ($('#features_edit option[id="enable_metatag_edit"]').is(':selected')) ? 1 : 0;
var enable_loading_iv = ($('#features_edit option[id="enable_loading_iv_edit"]').is(':selected')) ? 1 : 0;
var enable_measurements = ($('#features_edit option[id="enable_measurements_edit"]').is(':selected')) ? 1 : 0;
var price = $('#price_edit').val();
var price2 = $('#price2_edit').val();
var frequency = $('#frequency_edit option:selected').attr('id');
var interval_count = $('#interval_count_edit').val();
var currency = $('#currency_edit option:selected').attr('id');
var visible = ($('#visible_edit').is(':checked')) ? 1 : 0;
var external_url = $('#external_url_edit').val();
var expire_tours = $('#expire_tours_edit option:selected').attr('id');
var custom_features = $('#custom_features_edit').val();
var customize_menu_edit_t = $('#customize_menu_edit option');
var customize_menu = {};
$(customize_menu_edit_t).each(function(index, elem){
var id = $(this).attr('id');
if(id !== undefined) {
if($(this).is(':selected')) {
customize_menu[id]=1;
} else {
customize_menu[id]=0;
}
}
});
var customize_menu_json = JSON.stringify(customize_menu);
if(name=='') {
complete = false;
$('#name_edit').addClass("error-highlight");
} else {
$('#name_edit').removeClass("error-highlight");
}
var button_type = $('#button_type_edit option:selected').attr('id');
var button_text = $('#button_text_edit').val();
var button_icon = $('#button_icon_edit').val();
if(complete) {
$('#modal_edit_plan button').addClass("disabled");
$.ajax({
url: "ajax/save_plan.php",
type: "POST",
data: {
id: window.id_plan_sel,
name: name,
n_virtual_tours: n_virtual_tours,
n_rooms: n_rooms,
n_rooms_tour: n_rooms_tour,
n_markers: n_markers,
n_pois: n_pois,
n_gallery_images: n_gallery_images,
n_ai_generate_month: n_ai_generate_month,
days: days,
price: price,
price2: price2,
currency: currency,
custom_features: custom_features,
create_landing: create_landing,
create_showcase: create_showcase,
create_globes: create_globes,
create_gallery: create_gallery,
enable_download_slideshow: enable_download_slideshow,
create_presentation: create_presentation,
create_video360: create_video360,
create_video_projects: create_video_projects,
enable_live_session: enable_live_session,
enable_meeting: enable_meeting,
max_file_size_upload: max_file_size_upload,
max_storace_space: max_storace_space,
enable_chat: enable_chat,
enable_voice_commands: enable_voice_commands,
enable_share: enable_share,
enable_device_orientation: enable_device_orientation,
enable_webvr: enable_webvr,
enable_logo: enable_logo,
enable_poweredby: enable_poweredby,
enable_nadir_logo: enable_nadir_logo,
enable_song: enable_song,
enable_comments: enable_comments,
enable_forms: enable_forms,
enable_annotations: enable_annotations,
enable_panorama_video: enable_panorama_video,
enable_ai_room: enable_ai_room,
enable_rooms_multiple: enable_rooms_multiple,
enable_rooms_protect: enable_rooms_protect,
enable_info_box: enable_info_box,
enable_context_info: enable_context_info,
enable_maps: enable_maps,
enable_icons_library: enable_icons_library,
enable_media_library: enable_media_library,
enable_music_library: enable_music_library,
enable_sound_library: enable_sound_library,
enable_password_tour: enable_password_tour,
enable_expiring_dates: enable_expiring_dates,
enable_export_vt: enable_export_vt,
enable_statistics: enable_statistics,
enable_multilanguage: enable_multilanguage,
enable_auto_translation: enable_auto_translation,
enable_auto_rotate: enable_auto_rotate,
enable_flyin: enable_flyin,
enable_multires: enable_multires,
enable_shop: enable_shop,
enable_dollhouse: enable_dollhouse,
enable_editor_ui: enable_editor_ui,
enable_custom_html: enable_custom_html,
enable_metatag: enable_metatag,
enable_loading_iv: enable_loading_iv,
enable_measurements: enable_measurements,
visible: visible,
external_url: external_url,
frequency: frequency,
interval_count: interval_count,
customize_menu: customize_menu_json,
expire_tours: expire_tours,
button_type: button_type,
button_text: button_text,
button_icon: button_icon
},
async: true,
success: function (json) {
var rsp = JSON.parse(json);
if (rsp.status == "ok") {
$('#modal_edit_plan button').removeClass("disabled");
$('#modal_edit_plan').modal("hide");
window.plan_need_save = false;
window.plans_table.ajax.reload();
if(window.stripe_enabled) {
stripe_initialize(window.id_plan_sel,0);
}
if(window.paypal_enabled) {
paypal_initialize(window.id_plan_sel,0);
}
if(max_storace_space!=-1) {
$.ajax({
url: "../services/calculate_storage_space.php",
type: "POST",
async: true,
success: function (json) {}
});
}
} else {
$('#modal_edit_plan button').removeClass("disabled");
}
}
});
}
};
window.stripe_initialize = function (id_plan,save) {
$('#modal_stripe_init').modal("show");
var postData = new FormData();
postData.append('id_plan', id_plan);
postData.append('save', save);
if(save==1) {
var stripe_public_key = $('#stripe_public_key').val();
var stripe_secret_key = $('#stripe_secret_key').val();
var stripe_automatic_tax_rate = $('#stripe_automatic_tax_rate option:selected').attr('id');
postData.append('stripe_secret_key', stripe_secret_key);
postData.append('stripe_public_key', stripe_public_key);
postData.append('stripe_automatic_tax_rate', stripe_automatic_tax_rate);
}
fetch('../payments/stripe_init.php', {
method: 'POST',
body: postData
}).then(function(response) {
return response.json();
}).then(function(rsp) {
$('#modal_stripe_init').modal("hide");
if(rsp.status=="ok") {
$('#stripe_enabled').prop("disabled",false);
$('#stripe_enabled').prop("checked",true);
$('#paypal_enabled').prop("disabled",true);
$('#paypal_enabled').prop("checked",false);
$('#btn_check_stripe').removeClass("btn-primary");
$('#btn_check_stripe').addClass("btn-success");
setTimeout(function () {
$('#btn_check_stripe').addClass("btn-primary");
$('#btn_check_stripe').removeClass("btn-success");
},1000);
} else {
alert(rsp.msg);
$('#stripe_enabled').prop("disabled",true);
$('#stripe_enabled').prop("checked",false);
$('#btn_check_stripe').removeClass("btn-primary");
$('#btn_check_stripe').addClass("btn-danger");
setTimeout(function () {
$('#btn_check_stripe').addClass("btn-primary");
$('#btn_check_stripe').removeClass("btn-danger");
},1000);
}
}).catch(function(error) {
$('#modal_stripe_init').modal("hide");
$('#btn_check_stripe').addClass("btn-danger");
$('#btn_check_stripe').removeClass("btn-primary");
setTimeout(function () {
$('#btn_check_stripe').addClass("btn-primary");
$('#btn_check_stripe').removeClass("btn-danger");
},1000);
});
}
window.paypal_initialize = function (id_plan,save) {
$('#modal_stripe_init').modal("show");
var postData = new FormData();
postData.append('id_plan', id_plan);
postData.append('save', save);
if(save==1) {
var paypal_live = ($('#paypal_live').is(':checked')) ? 1 : 0;
var paypal_client_id = $('#paypal_client_id').val();
var paypal_client_secret = $('#paypal_client_secret').val();
postData.append('paypal_live', paypal_live);
postData.append('paypal_client_id', paypal_client_id);
postData.append('paypal_client_secret', paypal_client_secret);
}
fetch('../payments/paypal_init.php', {
method: 'POST',
body: postData
}).then(function(response) {
return response.json();
}).then(function(rsp) {
$('#modal_stripe_init').modal("hide");
if(rsp.status=="ok") {
$('#paypal_enabled').prop("disabled",false);
$('#paypal_enabled').prop("checked",true);
$('#stripe_enabled').prop("disabled",true);
$('#stripe_enabled').prop("checked",false);
$('#btn_check_paypal').removeClass("btn-primary");
$('#btn_check_paypal').addClass("btn-success");
setTimeout(function () {
$('#btn_check_paypal').addClass("btn-primary");
$('#btn_check_paypal').removeClass("btn-success");
},1000);
} else {
alert(rsp.msg);
$('#paypal_enabled').prop("disabled",true);
$('#paypal_enabled').prop("checked",false);
$('#btn_check_paypal').removeClass("btn-primary");
$('#btn_check_paypal').addClass("btn-danger");
setTimeout(function () {
$('#btn_check_paypal').addClass("btn-primary");
$('#btn_check_paypal').removeClass("btn-danger");
},1000);
}
}).catch(function(error) {
$('#modal_stripe_init').modal("hide");
$('#btn_check_paypal').removeClass("btn-primary");
$('#btn_check_paypal').addClass("btn-danger");
setTimeout(function () {
$('#btn_check_paypal').addClass("btn-primary");
$('#btn_check_paypal').removeClass("btn-danger");
},1000);
});
}
window.aws_s3_initialize = function () {
$('#modal_aws_s3_init').modal("show");
var postData = new FormData();
var aws_s3_type = $('#aws_s3_type option:selected').attr('id');
var aws_s3_vt_auto = $('#aws_s3_vt_auto').val();
var aws_s3_bucket = $('#aws_s3_bucket').val();
switch(aws_s3_type) {
case 'digitalocean':
var aws_s3_region = $('#aws_s3_region_digitalocean option:selected').attr('id');
break;
default:
var aws_s3_region = $('#aws_s3_region option:selected').attr('id');
break;
}
var aws_s3_key = $('#aws_s3_key').val();
var aws_s3_secret = $('#aws_s3_secret').val();
var aws_s3_accountid = $('#aws_s3_accountid').val();
var aws_s3_custom_domain = $('#aws_s3_custom_domain').val();
postData.append('aws_s3_type', aws_s3_type);
postData.append('aws_s3_vt_auto', aws_s3_vt_auto);
postData.append('aws_s3_bucket', aws_s3_bucket);
postData.append('aws_s3_region', aws_s3_region);
postData.append('aws_s3_key', aws_s3_key);
postData.append('aws_s3_secret', aws_s3_secret);
postData.append('aws_s3_accountid', aws_s3_accountid);
postData.append('aws_s3_custom_domain', aws_s3_custom_domain);
fetch('../services/aws_s3_init.php', {
method: 'POST',
body: postData
}).then(function(response) {
return response.json();
}).then(function(rsp) {
$('#modal_aws_s3_init').modal("hide");
if(rsp.status=="ok") {
$('#aws_s3_enabled').prop("disabled",false);
$('#aws_s3_enabled').prop("checked",true);
$('#btn_check_aws').removeClass("btn-primary");
$('#btn_check_aws').addClass("btn-success");
setTimeout(function () {
$('#btn_check_aws').removeClass("btn-success");
$('#btn_check_aws').addClass("btn-primary");
},1000);
} else {
alert(rsp.msg);
$('#aws_s3_enabled').prop("disabled",true);
$('#aws_s3_enabled').prop("checked",false);
$('#btn_check_aws').removeClass("btn-primary");
$('#btn_check_aws').addClass("btn-danger");
setTimeout(function () {
$('#btn_check_aws').removeClass("btn-danger");
$('#btn_check_aws').addClass("btn-primary");
},1000);
}
}).catch(function(error) {
$('#modal_aws_s3_init').modal("hide");
$('#btn_check_aws').removeClass("btn-primary");
$('#btn_check_aws').addClass("btn-danger");
setTimeout(function () {
$('#btn_check_aws').removeClass("btn-danger");
$('#btn_check_aws').addClass("btn-primary");
},1000);
});
}
window.save_virtualtour = function() {
var complete = true;
var array_lang = {};
var name = $('#name').val();
array_lang['name'] = {};
$('.input_lang[data-target-id="name"]').each(function() {
var lang = $(this).attr('data-lang');
var value = $(this).val();
array_lang['name'][lang]=value;
});
var author = $('#author').val();
var id_user = $('#user option:selected').attr('id');
var id_categories = [];
$("#category option:selected").each(function () {
id_categories.push(parseInt($(this).attr('id')));
});
var hfov = parseInt($('#hfov').val());
var min_hfov = parseInt($('#min_hfov').val());
var max_hfov = parseInt($('#max_hfov').val());
var hfov_mobile_ratio = parseFloat($('#hfov_mobile_ratio').val());
var pan_speed = parseFloat($('#pan_speed').val());
var pan_speed_mobile = parseFloat($('#pan_speed_mobile').val());
var friction = parseFloat($('#friction').val());
var friction_mobile = parseFloat($('#friction_mobile').val());
var zoom_friction = parseFloat($('#zoom_friction').val());
var zoom_friction_mobile = parseFloat($('#zoom_friction_mobile').val());
var mouse_follow_feedback = parseFloat($('#mouse_follow_feedback').val());
var zoom_to_pointer = ($('#zoom_to_pointer').is(':checked')) ? 1 : 0;
var mouse_zoom = $('#mouse_zoom option:selected').attr('id');
var quality_viewer = parseFloat($('#quality_viewer').val());
var flyin = ($('#flyin').is(':checked')) ? 1 : 0;
var flyin_duration = parseInt($('#flyin_duration').val());
var auto_start = $('#auto_start option:selected').attr('id');
var hide_loading = ($('#hide_loading').is(':checked')) ? 0 : 1;
var background_video_delay = $('#background_video_delay').val();
var background_video_delay_mobile = $('#background_video_delay_m').val();
var sameAzimuth = ($('#sameAzimuth').is(':checked')) ? 1 : 0;
var description = $('#description').val();
array_lang['description'] = {};
$('.input_lang[data-target-id="description"]').each(function() {
var lang = $(this).attr('data-lang');
var value = $(this).val();
array_lang['description'][lang]=value;
});
var external_url = $('#external_url').val();
var ga_tracking_id = $('#ga_tracking_id').val();
var compress_jpg = $('#compress_jpg').val();
var max_width_compress = $('#max_width_compress').val();
var link_logo = $('#link_logo').val();
var enable_multires = ($('#enable_multires').is(':checked')) ? 1 : 0;
var preload_panoramas = ($('#preload_panoramas').is(':checked')) ? 1 : 0;
var mobile_panoramas = ($('#mobile_panoramas').is(':checked')) ? 1 : 0;
var keep_original_panorama = ($('#keep_original_panorama').is(':checked')) ? 1 : 0;
var transition_time = $('#transition_time').val();
var transition_fadeout = $('#transition_fadeout').val();
var transition_zoom = $('#transition_zoom').val();
var transition_loading = ($('#transition_loading').is(':checked')) ? 1 : 0;
var transition_effect = $('#transition_effect option:selected').attr('id');
var markers_default_lookat = $('#markers_default_lookat option:selected').attr('id');
var markers_default_backlink = ($('#markers_default_backlink').is(':checked')) ? 1 : 0;
var click_anywhere = ($('#click_anywhere').is(':checked')) ? 1 : 0;
var hide_markers = ($('#hide_markers').is(':checked')) ? 1 : 0;
if(click_anywhere==0) hide_markers=0;
var hover_markers = ($('#hover_markers').is(':checked')) ? 1 : 0;
if(hide_markers==0) hover_markers=0;
var keyboard_mode = $('#keyboard_mode option:selected').attr('id');
var note = $('#note').val();
var shop_type = $('#shop_type option:selected').attr('id');
var woocommerce_store_url = $('#woocommerce_store_url').val();
var woocommerce_store_cart = $('#woocommerce_store_cart').val();
var woocommerce_store_checkout = $('#woocommerce_store_checkout').val();
var woocommerce_customer_key = $('#woocommerce_customer_key').val();
var woocommerce_customer_secret = $('#woocommerce_customer_secret').val();
var snipcart_api_key = $('#snipcart_api_key').val();
var snipcart_currency = $('#snipcart_currency option:selected').attr('id');
var enable_visitor_rt = ($('#enable_visitor_rt').is(':checked')) ? 1 : 0;
var enable_views_stat = ($('#enable_views_stat').is(':checked')) ? 1 : 0;
var interval_visitor_rt = $('#interval_visitor_rt').val();
var ar_camera_align = ($('#ar_camera_align').is(':checked')) ? 1 : 0;
var custom_html = window.custom_vt_html.getValue();
var context_info = window.context_info_editor.root.innerHTML;
var intro_desktop_hide = $('#intro_desktop_hide').val();
var intro_mobile_hide = $('#intro_mobile_hide').val();
if(name=='') {
complete = false;
$('#name').addClass("error-highlight");
} else {
$('#name').removeClass("error-highlight");
}
if(window.external==1) {
if(external_url=='') {
complete = false;
$('#external_url').addClass("error-highlight");
} else {
$('#external_url').removeClass("error-highlight");
}
}
var content = [{},{},{},{},{},{},{},{},{},{},{}];
content[0]['title'] = $('#form_title').val();
content[0]['button'] = $('#form_button').val();
content[0]['response'] = $('#form_response').val();
content[0]['description'] = $('#form_description').val();
content[0]['privacy_policy'] = $('#form_privacy_policy').is(':checked');
content[0]['send_email'] = $('#form_send_email').is(':checked');
content[0]['email'] = $('#form_email').val();
content[0]['background'] = $('#form_background_m').val();
content[0]['color'] = $('#form_color_m').val();
content[0]['background_button'] = $('#form_background_button').val();
content[0]['color_button'] = $('#form_color_button').val();
for(var i=1;i<=10;i++) {
content[i]['enabled'] = $('#form_field_'+i).is(':checked');
content[i]['required'] = $('#form_field_required_'+i).is(':checked');
content[i]['type'] = $('#form_field_type_'+i+' option:selected').attr('id');
content[i]['label'] = $('#form_field_label_'+i).val();
}
var form_content = JSON.stringify(content);
array_lang['form_content'] = {};
$('.input_lang[data-target-id="form_title"]').each(function() {
var lang = $(this).attr('data-lang');
var content_lang = [{},{},{},{},{},{},{},{},{},{},{}];
if($('.input_lang[data-target-id="form_title"][data-lang="'+lang+'"]').val()!='') {
content_lang[0]['title'] = $('.input_lang[data-target-id="form_title"][data-lang="'+lang+'"]').val();
} else {
content_lang[0]['title'] = $('#form_title').val();
}
if($('.input_lang[data-target-id="form_button"][data-lang="'+lang+'"]').val()!='') {
content_lang[0]['button'] = $('.input_lang[data-target-id="form_button"][data-lang="'+lang+'"]').val();
} else {
content_lang[0]['button'] = $('#form_button').val();
}
if($('.input_lang[data-target-id="form_response"][data-lang="'+lang+'"]').val()!='') {
content_lang[0]['response'] = $('.input_lang[data-target-id="form_response"][data-lang="'+lang+'"]').val();
} else {
content_lang[0]['response'] = $('#form_response').val();
}
if($('.input_lang[data-target-id="form_description"][data-lang="'+lang+'"]').val()!='') {
content_lang[0]['description'] = $('.input_lang[data-target-id="form_description"][data-lang="'+lang+'"]').val();
} else {
content_lang[0]['description'] = $('#form_description').val();
}
content_lang[0]['privacy_policy'] = $('#form_privacy_policy').is(':checked');
content_lang[0]['send_email'] = $('#form_send_email').is(':checked');
content_lang[0]['email'] = $('#form_email').val();
content_lang[0]['background'] = $('#form_background_m').val();
content_lang[0]['color'] = $('#form_color_m').val();
content_lang[0]['background_button'] = $('#form_background_button').val();
content_lang[0]['color_button'] = $('#form_color_button').val();
for(var i=1;i<=10;i++) {
content_lang[i]['enabled'] = $('#form_field_'+i).is(':checked');
content_lang[i]['required'] = $('#form_field_required_'+i).is(':checked');
content_lang[i]['type'] = $('#form_field_type_'+i+' option:selected').attr('id');
if($('.input_lang[data-target-id="form_field_label_'+i+'"][data-lang="'+lang+'"]').val()!='') {
content_lang[i]['label'] = $('.input_lang[data-target-id="form_field_label_'+i+'"][data-lang="'+lang+'"]').val();
} else {
content_lang[i]['label'] = $('#form_field_label_'+i).val();
}
}
array_lang['form_content'][lang]=JSON.stringify(content_lang);
});
var initial_feedback = $('#initial_feedback').val();
var loading_background_color = $('#loading_background_color').val();
var loading_text_color = $('#loading_text_color').val();
var language = $('#language option:selected').attr('id');
var array_lang_json = JSON.stringify(array_lang);
var poweredby_type = $('#poweredby_type option:selected').attr('id');
var poweredby_text = $('#poweredby_text').val();
switch(poweredby_type) {
case 'image':
var poweredby_link = $('#poweredby_link_image').val();
break;
case 'text':
var poweredby_link = $('#poweredby_link_text').val();
break;
}
if(complete) {
$('#save_btn .icon i').removeClass('far fa-circle').addClass('fas fa-circle-notch fa-spin');
$('#save_btn').addClass("disabled");
$.ajax({
url: "ajax/save_virtual_tour.php",
type: "POST",
data: {
id_virtualtour: id_virtualtour,
name: name,
id_user: id_user,
author: author,
hfov: hfov,
min_hfov: min_hfov,
max_hfov: max_hfov,
hfov_mobile_ratio: hfov_mobile_ratio,
pan_speed: pan_speed,
pan_speed_mobile: pan_speed_mobile,
friction: friction,
friction_mobile: friction_mobile,
zoom_friction: zoom_friction,
zoom_friction_mobile: zoom_friction_mobile,
mouse_follow_feedback: mouse_follow_feedback,
zoom_to_pointer: zoom_to_pointer,
mouse_zoom: mouse_zoom,
quality_viewer: quality_viewer,
song: window.song,
flyin: flyin,
flyin_duration: flyin_duration,
background_image: window.background_image,
background_video: window.background_video,
background_image_mobile: window.background_image_mobile,
background_video_mobile: window.background_video_mobile,
background_video_delay: background_video_delay,
background_video_delay_mobile: background_video_delay_mobile,
logo: window.logo,
link_logo: link_logo,
nadir_logo: window.nadir_logo,
intro_mobile: window.intro_mobile,
intro_desktop: window.intro_desktop,
intro_desktop_hide: intro_desktop_hide,
intro_mobile_hide: intro_mobile_hide,
auto_start: auto_start,
hide_loading: hide_loading,
sameAzimuth: sameAzimuth,
description: description,
external_url: external_url,
ga_tracking_id: ga_tracking_id,
compress_jpg: compress_jpg,
max_width_compress: max_width_compress,
enable_multires: enable_multires,
preload_panoramas: preload_panoramas,
mobile_panoramas: mobile_panoramas,
keep_original_panorama: keep_original_panorama,
transition_time: transition_time,
transition_fadeout: transition_fadeout,
transition_zoom: transition_zoom,
transition_loading: transition_loading,
transition_effect: transition_effect,
click_anywhere: click_anywhere,
hide_markers: hide_markers,
hover_markers: hover_markers,
note: note,
language: language,
id_categories: id_categories,
keyboard_mode: keyboard_mode,
shop_type: shop_type,
woocommerce_store_url: woocommerce_store_url,
woocommerce_store_cart: woocommerce_store_cart,
woocommerce_store_checkout: woocommerce_store_checkout,
woocommerce_customer_key: woocommerce_customer_key,
woocommerce_customer_secret: woocommerce_customer_secret,
snipcart_api_key: snipcart_api_key,
snipcart_currency: snipcart_currency,
enable_visitor_rt: enable_visitor_rt,
enable_views_stat: enable_views_stat,
interval_visitor_rt: interval_visitor_rt,
markers_default_lookat: markers_default_lookat,
markers_default_backlink: markers_default_backlink,
custom_html: custom_html,
context_info: context_info,
ar_camera_align: ar_camera_align,
initial_feedback: initial_feedback,
loading_background_color: loading_background_color,
loading_text_color: loading_text_color,
form_content: form_content,
array_lang: array_lang_json,
poweredby_type: poweredby_type,
poweredby_image: window.poweredby_image,
poweredby_text: poweredby_text,
poweredby_link: poweredby_link
},
async: true,
success: function (json) {
var rsp = JSON.parse(json);
if(rsp.status=="ok") {
if(rsp.favicon!=1) {
generate_favicons(rsp.favicon);
}
window.vt_need_save = false;
$('#save_btn .icon i').removeClass('fas fa-circle-notch fa-spin').addClass('fas fa-check');
setTimeout(function () {
$('#save_btn .icon i').removeClass('fas fa-check').addClass('far fa-circle');
$('#save_btn').removeClass("disabled");
},1000);
} else {
$('#save_btn .icon i').removeClass('fas fa-circle-notch fa-spin').addClass('fas fa-times');
$('#save_btn').removeClass('btn-success').addClass('btn-danger');
setTimeout(function () {
$('#save_btn .icon i').removeClass('fas fa-times').addClass('far fa-circle');
$('#save_btn').removeClass('btn-danger').addClass('btn-success');
$('#save_btn').removeClass("disabled");
},1000);
}
},
error: function() {
$('#save_btn .icon i').removeClass('fas fa-circle-notch fa-spin').addClass('fas fa-times');
$('#save_btn').removeClass('btn-success').addClass('btn-danger');
setTimeout(function () {
$('#save_btn .icon i').removeClass('fas fa-times').addClass('far fa-circle');
$('#save_btn').removeClass('btn-danger').addClass('btn-success');
$('#save_btn').removeClass("disabled");
},1000);
}
});
}
}
window.save_features = function () {
var array_features = [];
$('.feature_content').each(function() {
var feature = $(this).attr('data-feature');
var content = window.feature_content_editor[feature].root.innerHTML;
var name = $('#'+feature+'_name').val();
array_features.push({'feature':feature,'name':name,'content':content});
})
$('#save_btn .icon i').removeClass('far fa-circle').addClass('fas fa-circle-notch fa-spin');
$('#save_btn').addClass("disabled");
var array_features_json = JSON.stringify(array_features);
$.ajax({
url: "ajax/save_features.php",
type: "POST",
data: {
array_features: array_features_json
},
async: true,
success: function (json) {
var rsp = JSON.parse(json);
if (rsp.status == "ok") {
window.features_need_save = false;
$('#save_btn .icon i').removeClass('fas fa-circle-notch fa-spin').addClass('fas fa-check');
setTimeout(function () {
$('#save_btn .icon i').removeClass('fas fa-check').addClass('far fa-circle');
$('#save_btn').removeClass("disabled");
}, 1000);
} else {
$('#save_btn .icon i').removeClass('fas fa-circle-notch fa-spin').addClass('fas fa-times');
$('#save_btn').removeClass('btn-success').addClass('btn-danger');
setTimeout(function () {
$('#save_btn .icon i').removeClass('fas fa-times').addClass('far fa-circle');
$('#save_btn').removeClass('btn-danger').addClass('btn-success');
$('#save_btn').removeClass("disabled");
}, 1000);
}
},
error: function() {
$('#save_btn .icon i').removeClass('fas fa-circle-notch fa-spin').addClass('fas fa-times');
$('#save_btn').removeClass('btn-success').addClass('btn-danger');
setTimeout(function () {
$('#save_btn .icon i').removeClass('fas fa-times').addClass('far fa-circle');
$('#save_btn').removeClass('btn-danger').addClass('btn-success');
$('#save_btn').removeClass("disabled");
}, 1000);
}
});
}
window.save_settings = function (validate_mail) {
var complete = true;
var purchase_code = $('#purchase_code').val();
var name = $('#name').val();
var theme_color = $('#theme_color').val();
var sidebar = $('#sidebar option:selected').attr('id');
var font_provider = $('#font_provider option:selected').attr('id');
var sidebar_color_1 = $('#sidebar_color_1').val();
var sidebar_color_2 = $('#sidebar_color_2').val();
var theme_color_dark = $('#theme_color_dark').val();
var dark_mode = parseInt($('#dark_mode option:selected').attr('id'));
var sidebar_color_1_dark = $('#sidebar_color_1_dark').val();
var sidebar_color_2_dark = $('#sidebar_color_2_dark').val();
if(font_provider=='systems') {
var font_backend = $('#font_backend_system option:selected').attr('id');
} else {
var font_backend = $('#font_backend').val();
}
var welcome_msg = window.welcome_msg_editor.root.innerHTML;
var terms_and_conditions = window.terms_and_conditions_editor.root.innerHTML;
var privacy_policy = window.privacy_policy_editor.root.innerHTML;
var style_login = parseInt($('#style_login option:selected').attr('id'));
var style_register = parseInt($('#style_register option:selected').attr('id'));
var language = $('#language option:selected').attr('id');
var language_domain = $('#language_domain option:selected').attr('id');
var languages_enabled_t = $('#languages_enabled option');
var languages_enabled = {};
$(languages_enabled_t).each(function(index, elem){
var id = $(this).attr('id').replace('ls_','');
if($(this).is(':selected')) {
languages_enabled[id]=1;
} else {
languages_enabled[id]=0;
}
});
var languages_enabled_json = JSON.stringify(languages_enabled);
var languages_viewer_enabled_t = $('#languages_viewer_enabled option');
var languages_viewer_enabled = {};
$(languages_viewer_enabled_t).each(function(index, elem){
var id = $(this).attr('id').replace('lv_','');
if($(this).is(':selected')) {
languages_viewer_enabled[id]=1;
} else {
languages_viewer_enabled[id]=0;
}
});
var languages_viewer_enabled_json = JSON.stringify(languages_viewer_enabled);
var furl_blacklist = $('#furl_blacklist').val();
var contact_mail = $('#contact_mail').val();
var help_url = $('#help_url').val();
var website_url = $('#website_url').val();
var website_name = $('#website_name').val();
var enable_external_vt = ($('#enable_external_vt').is(':checked')) ? 1 : 0;
var enable_ar_vt = ($('#enable_ar_vt').is(':checked')) ? 1 : 0;
var enable_ai_room = ($('#enable_ai_room').is(':checked')) ? 1 : 0;
var ai_key = $('#ai_key').val();
var enable_deepl = ($('#enable_deepl').is(':checked')) ? 1 : 0;
var deepl_api_key = $('#deepl_api_key').val();
var enable_wizard = ($('#enable_wizard').is(':checked')) ? 1 : 0;
var enable_sample = ($('#enable_sample').is(':checked')) ? 1 : 0;
var id_vt_sample = $('#id_vt_sample option:selected').attr('id');
var id_vt_template = $('#id_vt_template option:selected').attr('id');
var smtp_server = $('#smtp_server').val();
var smtp_port = $('#smtp_port').val();
var smtp_auth = ($('#smtp_auth').is(':checked')) ? 1 : 0;
var smtp_secure = $('#smtp_secure option:selected').attr('id');
var smtp_username = $('#smtp_username').val();
var smtp_password = $('#smtp_password').val();
var smtp_from_email = $('#smtp_from_email').val();
var smtp_from_name = $('#smtp_from_name').val();
var captcha_login = ($('#captcha_login').is(':checked')) ? 1 : 0;
var captcha_register = ($('#captcha_register').is(':checked')) ? 1 : 0;
var twofa_enable = ($('#2fa_enable').is(':checked')) ? 1 : 0;
var css_array = {};
$(".editors_css").each(function() {
var id = $(this).attr('id');
css_array[id]=window.editors_css[id].getValue();
});
var js_array = {};
$(".editors_js").each(function() {
var id = $(this).attr('id');
js_array[id.replace("_js","")]=window.editors_js[id].getValue();
});
var head_array = {};
$(".editors_head").each(function() {
var id = $(this).attr('id');
head_array[id.replace("_head","")]=window.editors_head[id].getValue();
});
var css_array_json = JSON.stringify(css_array);
var js_array_json = JSON.stringify(js_array);
var head_array_json = JSON.stringify(head_array);
var social_google_enable = ($('#social_google_enable').is(':checked')) ? 1 : 0;
var social_facebook_enable = ($('#social_facebook_enable').is(':checked')) ? 1 : 0;
var social_twitter_enable = ($('#social_twitter_enable').is(':checked')) ? 1 : 0;
var social_wechat_enable = ($('#social_wechat_enable').is(':checked')) ? 1 : 0;
var social_qq_enable = ($('#social_qq_enable').is(':checked')) ? 1 : 0;
var social_google_id = $('#social_google_id').val();
var social_google_secret = $('#social_google_secret').val();
var social_facebook_id = $('#social_facebook_id').val();
var social_facebook_secret = $('#social_facebook_secret').val();
var social_twitter_id = $('#social_twitter_id').val();
var social_twitter_secret = $('#social_twitter_secret').val();
var social_wechat_id = $('#social_wechat_id').val();
var social_wechat_secret = $('#social_wechat_secret').val();
var social_qq_id = $('#social_qq_id').val();
var social_qq_secret = $('#social_qq_secret').val();
var enable_registration = ($('#enable_registration').is(':checked')) ? 1 : 0;
var change_plan = ($('#change_plan').is(':checked')) ? 1 : 0;
var validate_email = ($('#validate_email').is(':checked')) ? 1 : 0;
var default_id_plan = $('#default_plan option:selected').attr('id');
var stripe_enabled = ($('#stripe_enabled').is(':checked')) ? 1 : 0;
var stripe_automatic_tax_rate = $('#stripe_automatic_tax_rate option:selected').attr('id');
var stripe_secret_key = $('#stripe_secret_key').val();
var stripe_public_key = $('#stripe_public_key').val();
var paypal_enabled = ($('#paypal_enabled').is(':checked')) ? 1 : 0;
var paypal_live = ($('#paypal_live').is(':checked')) ? 1 : 0;
var paypal_client_id = $('#paypal_client_id').val();
var paypal_client_secret = $('#paypal_client_secret').val();
var aws_s3_enabled = ($('#aws_s3_enabled').is(':checked')) ? 1 : 0;
var aws_s3_type = $('#aws_s3_type option:selected').attr('id');
var aws_s3_vt_auto = ($('#aws_s3_vt_auto').is(':checked')) ? 1 : 0;
var aws_s3_bucket = $('#aws_s3_bucket').val();
switch(aws_s3_type) {
case 'digitalocean':
var aws_s3_region = $('#aws_s3_region_digitalocean option:selected').attr('id');
break;
default:
var aws_s3_region = $('#aws_s3_region option:selected').attr('id');
break;
}
var aws_s3_key = $('#aws_s3_key').val();
var aws_s3_secret = $('#aws_s3_secret').val();
var aws_s3_accountid = $('#aws_s3_accountid').val();
var aws_s3_custom_domain = $('#aws_s3_custom_domain').val();
var mail_activate_subject = $('#mail_activate_subject').val();
var mail_activate_body = window.mail_activate_body_editor.root.innerHTML;
var mail_user_add_subject = $('#mail_user_add_subject').val();
var mail_user_add_body = window.mail_user_add_body_editor.root.innerHTML;
var mail_forgot_subject = $('#mail_forgot_subject').val();
var mail_forgot_body = window.mail_forgot_body_editor.root.innerHTML;
var mail_plan_expiring_subject = $('#mail_plan_expiring_subject').val();
var mail_plan_expiring_body = window.mail_plan_expiring_body_editor.root.innerHTML;
var mail_plan_expired_subject = $('#mail_plan_expired_subject').val();
var mail_plan_expired_body = window.mail_plan_expired_body_editor.root.innerHTML;
var mail_plan_changed_subject = $('#mail_plan_changed_subject').val();
var mail_plan_changed_body = window.mail_plan_changed_body_editor.root.innerHTML;
var mail_plan_canceled_subject = $('#mail_plan_canceled_subject').val();
var mail_plan_canceled_body = window.mail_plan_canceled_body_editor.root.innerHTML;
var language_vc = $('#language_vc').val();
var initial_msg = $('#initial_msg').val();
var listening_msg = $('#listening_msg').val();
var error_msg = $('#error_msg').val();
var help_cmd = $('#help_cmd').val();
var help_msg_1 = $('#help_msg_1').val();
var help_msg_2 = $('#help_msg_2').val();
var next_cmd = $('#next_cmd').val();
var next_msg = $('#next_msg').val();
var prev_cmd = $('#prev_cmd').val();
var prev_msg = $('#prev_msg').val();
var left_cmd = $('#left_cmd').val();
var left_msg = $('#left_msg').val();
var right_cmd = $('#right_cmd').val();
var right_msg = $('#right_msg').val();
var up_cmd = $('#up_cmd').val();
var up_msg = $('#up_msg').val();
var down_cmd = $('#down_cmd').val();
var down_msg = $('#down_msg').val();
$('#voice_commands_tab input').each(function () {
if($(this).val()=='') {
complete = false;
$(this).addClass("error-highlight");
} else {
$(this).removeClass("error-highlight");
}
});
var first_name_enable = ($('#first_name_enable').is(':checked')) ? 1 : 0;
var last_name_enable = ($('#last_name_enable').is(':checked')) ? 1 : 0;
var company_enable = ($('#company_enable').is(':checked')) ? 1 : 0;
var tax_id_enable = ($('#tax_id_enable').is(':checked')) ? 1 : 0;
var street_enable = ($('#street_enable').is(':checked')) ? 1 : 0;
var city_enable = ($('#city_enable').is(':checked')) ? 1 : 0;
var province_enable = ($('#province_enable').is(':checked')) ? 1 : 0;
var postal_code_enable = ($('#postal_code_enable').is(':checked')) ? 1 : 0;
var country_enable = ($('#country_enable').is(':checked')) ? 1 : 0;
var tel_enable = ($('#tel_enable').is(':checked')) ? 1 : 0;
var first_name_mandatory = ($('#first_name_mandatory').is(':checked')) ? 1 : 0;
var last_name_mandatory = ($('#last_name_mandatory').is(':checked')) ? 1 : 0;
var company_mandatory = ($('#company_mandatory').is(':checked')) ? 1 : 0;
var tax_id_mandatory = ($('#tax_id_mandatory').is(':checked')) ? 1 : 0;
var street_mandatory = ($('#street_mandatory').is(':checked')) ? 1 : 0;
var city_mandatory = ($('#city_mandatory').is(':checked')) ? 1 : 0;
var province_mandatory = ($('#province_mandatory').is(':checked')) ? 1 : 0;
var postal_code_mandatory = ($('#postal_code_mandatory').is(':checked')) ? 1 : 0;
var country_mandatory = ($('#country_mandatory').is(':checked')) ? 1 : 0;
var tel_mandatory = ($('#tel_mandatory').is(':checked')) ? 1 : 0;
var peerjs_host = $('#peerjs_host').val();
var peerjs_port = $('#peerjs_port').val();
var peerjs_path = $('#peerjs_path').val();
var turn_host = $('#turn_host').val();
var turn_port = $('#turn_port').val();
var turn_username = $('#turn_username').val();
var turn_password = $('#turn_password').val();
var jitsi_domain = $('#jitsi_domain').val();
var leaflet_street_basemap = $('#leaflet_street_basemap').val();
var leaflet_satellite_basemap = $('#leaflet_satellite_basemap').val();
var leaflet_street_subdomain = $('#leaflet_street_subdomain').val();
var leaflet_street_maxzoom = $('#leaflet_street_maxzoom').val();
var leaflet_satellite_subdomain = $('#leaflet_satellite_subdomain').val();
var leaflet_satellite_maxzoom = $('#leaflet_satellite_maxzoom').val();
var footer_link_1 = $('#footer_link_1').val();
var footer_link_2 = $('#footer_link_2').val();
var footer_link_3 = $('#footer_link_3').val();
var footer_value_1 = window.footer_value_1.root.innerHTML;
var footer_value_2 = window.footer_value_2.root.innerHTML;
var footer_value_3 = window.footer_value_3.root.innerHTML;
var multires = $('#multires option:selected').attr('id');
var multires_cloud_url = $('#multires_cloud_url').val();
var video360 = $('#video360 option:selected').attr('id');
var video360_cloud_url = $('#video360_cloud_url').val();
var slideshow = $('#slideshow option:selected').attr('id');
var slideshow_cloud_url = $('#slideshow_cloud_url').val();
var video_project = $('#video_project option:selected').attr('id');
var video_project_url = $('#video_project_url').val();
var enable_screencast = ($('#enable_screencast').is(':checked')) ? 1 : 0;
var url_screencast = $('#url_screencast').val();
var notify_email = $('#notify_email').val();
var days_expire_notification = $('#days_expire_notification').val();
var notify_registrations = ($('#notify_registrations').is(':checked')) ? 1 : 0;
var notify_useradd = ($('#notify_useradd').is(':checked')) ? 1 : 0;
var notify_plan_expires = ($('#notify_plan_expires').is(':checked')) ? 1 : 0;
var notify_plan_expiring = ($('#notify_plan_expiring').is(':checked')) ? 1 : 0;
var notify_plan_changes = ($('#notify_plan_changes').is(':checked')) ? 1 : 0;
var notify_plan_cancels = ($('#notify_plan_cancels').is(':checked')) ? 1 : 0;
var notify_vt_create = ($('#notify_vt_create').is(':checked')) ? 1 : 0;
var vr_button = $('#vr_button option:selected').attr('id');
var disqus_allow_tour = ($('#disqus_allow_tour').is(':checked')) ? 1 : 0;
var share_providers_t = $('#share_providers option');
var share_providers = '';
$(share_providers_t).each(function(index, elem){
var id = $(this).attr('id');
if(id !== undefined) {
id = id.replace('provider_','');
if($(this).is(':selected')) {
share_providers = share_providers+id+',';
}
}
});
if(share_providers!='') {
share_providers = share_providers.substring(0,share_providers.length-1);
}
var disqus_shortname = $('#disqus_shortname').val();
var disqus_public_key = $('#disqus_public_key').val();
var globe_ion_token = $('#globe_ion_token').val();
var globe_arcgis_token = $('#globe_arcgis_token').val();
var globe_googlemaps_key = $('#globe_googlemaps_key').val();
var maintenance_backend = ($('#maintenance_backend').is(':checked')) ? 1 : 0;
var maintenance_viewer = ($('#maintenance_viewer').is(':checked')) ? 1 : 0;
var maintenance_ip = $('#maintenance_ip').val();
if(name=='') {
complete = false;
$('#name').addClass("error-highlight");
} else {
$('#name').removeClass("error-highlight");
}
if(!mail_activate_body.includes('%LINK%')) {
complete = false;
$('#mail_activate_body').addClass("error-highlight");
} else {
$('#mail_activate_body').removeClass("error-highlight");
}
if((!mail_forgot_body.includes('%LINK%')) || (!mail_forgot_body.includes('%VERIFICATION_CODE%'))) {
complete = false;
$('#mail_forgot_body').addClass("error-highlight");
} else {
$('#mail_forgot_body').removeClass("error-highlight");
}
if(complete) {
if(validate_mail) {
$('#btn_validate_mail').addClass("disabled");
}
$('#save_btn .icon i').removeClass('far fa-circle').addClass('fas fa-circle-notch fa-spin');
$('#save_btn').addClass("disabled");
$.ajax({
url: "ajax/save_settings.php",
type: "POST",
data: {
purchase_code: purchase_code,
name: name,
theme_color: theme_color,
theme_color_dark: theme_color_dark,
dark_mode: dark_mode,
sidebar: sidebar,
sidebar_color_1: sidebar_color_1,
sidebar_color_2: sidebar_color_2,
sidebar_color_1_dark: sidebar_color_1_dark,
sidebar_color_2_dark: sidebar_color_2_dark,
font_backend: font_backend,
welcome_msg: welcome_msg,
terms_and_conditions: terms_and_conditions,
privacy_policy: privacy_policy,
logo: window.b_logo_image,
small_logo: window.b_logo_s_image,
background: window.b_background_image,
background_reg: window.b_background_reg_image,
style_login: style_login,
style_register: style_register,
smtp_server: smtp_server,
smtp_port: smtp_port,
smtp_secure: smtp_secure,
smtp_auth: smtp_auth,
smtp_username: smtp_username,
smtp_password: smtp_password,
smtp_from_email: smtp_from_email,
smtp_from_name: smtp_from_name,
furl_blacklist: furl_blacklist,
language: language,
language_domain: language_domain,
languages_enabled: languages_enabled_json,
languages_viewer_enabled: languages_viewer_enabled_json,
css_array: css_array_json,
js_array: js_array_json,
head_array: head_array_json,
contact_mail: contact_mail,
help_url: help_url,
website_url: website_url,
website_name: website_name,
enable_external_vt: enable_external_vt,
enable_ar_vt: enable_ar_vt,
enable_ai_room: enable_ai_room,
ai_key: ai_key,
enable_wizard: enable_wizard,
enable_sample: enable_sample,
id_vt_sample: id_vt_sample,
id_vt_template: id_vt_template,
social_google_enable: social_google_enable,
social_facebook_enable: social_facebook_enable,
social_twitter_enable: social_twitter_enable,
social_wechat_enable: social_wechat_enable,
social_qq_enable: social_qq_enable,
social_google_id: social_google_id,
social_google_secret: social_google_secret,
social_facebook_id: social_facebook_id,
social_facebook_secret: social_facebook_secret,
social_twitter_id: social_twitter_id,
social_twitter_secret: social_twitter_secret,
social_wechat_id: social_wechat_id,
social_wechat_secret: social_wechat_secret,
social_qq_id: social_qq_id,
social_qq_secret: social_qq_secret,
enable_registration: enable_registration,
default_id_plan: default_id_plan,
change_plan: change_plan,
validate_email: validate_email,
stripe_enabled: stripe_enabled,
stripe_automatic_tax_rate: stripe_automatic_tax_rate,
stripe_secret_key: stripe_secret_key,
stripe_public_key: stripe_public_key,
paypal_enabled: paypal_enabled,
paypal_live: paypal_live,
paypal_client_id: paypal_client_id,
paypal_client_secret: paypal_client_secret,
mail_activate_subject: mail_activate_subject,
mail_activate_body: mail_activate_body,
mail_user_add_subject: mail_user_add_subject,
mail_user_add_body: mail_user_add_body,
mail_forgot_subject: mail_forgot_subject,
mail_forgot_body: mail_forgot_body,
mail_plan_expiring_subject: mail_plan_expiring_subject,
mail_plan_expiring_body: mail_plan_expiring_body,
mail_plan_expired_subject: mail_plan_expired_subject,
mail_plan_expired_body: mail_plan_expired_body,
mail_plan_changed_subject: mail_plan_changed_subject,
mail_plan_changed_body: mail_plan_changed_body,
mail_plan_canceled_subject: mail_plan_canceled_subject,
mail_plan_canceled_body: mail_plan_canceled_body,
voice_commands: {
language: language_vc,
initial_msg: initial_msg,
listening_msg: listening_msg,
error_msg: error_msg,
help_cmd: help_cmd,
help_msg_1: help_msg_1,
help_msg_2: help_msg_2,
next_cmd: next_cmd,
next_msg: next_msg,
prev_cmd: prev_cmd,
prev_msg: prev_msg,
left_cmd: left_cmd,
left_msg: left_msg,
right_cmd: right_cmd,
right_msg: right_msg,
up_cmd: up_cmd,
up_msg: up_msg,
down_cmd: down_cmd,
down_msg: down_msg
},
first_name_enable: first_name_enable,
last_name_enable: last_name_enable,
company_enable: company_enable,
tax_id_enable: tax_id_enable,
street_enable: street_enable,
city_enable: city_enable,
province_enable: province_enable,
postal_code_enable: postal_code_enable,
country_enable: country_enable,
tel_enable: tel_enable,
first_name_mandatory: first_name_mandatory,
last_name_mandatory: last_name_mandatory,
company_mandatory: company_mandatory,
tax_id_mandatory: tax_id_mandatory,
street_mandatory: street_mandatory,
city_mandatory: city_mandatory,
province_mandatory: province_mandatory,
postal_code_mandatory: postal_code_mandatory,
country_mandatory: country_mandatory,
tel_mandatory: tel_mandatory,
peerjs_host: peerjs_host,
peerjs_port: peerjs_port,
peerjs_path: peerjs_path,
turn_host: turn_host,
turn_port: turn_port,
turn_username: turn_username,
turn_password: turn_password,
jitsi_domain: jitsi_domain,
url_street: leaflet_street_basemap,
url_sat: leaflet_satellite_basemap,
sub_street: leaflet_street_subdomain,
sub_sat: leaflet_satellite_subdomain,
zoom_street: leaflet_street_maxzoom,
zoom_sat: leaflet_satellite_maxzoom,
footer_link_1: footer_link_1,
footer_link_2: footer_link_2,
footer_link_3: footer_link_3,
footer_value_1: footer_value_1,
footer_value_2: footer_value_2,
footer_value_3: footer_value_3,
multires: multires,
multires_cloud_url: multires_cloud_url,
video360: video360,
video360_cloud_url: video360_cloud_url,
slideshow: slideshow,
slideshow_cloud_url: slideshow_cloud_url,
video_project: video_project,
video_project_url: video_project_url,
enable_screencast: enable_screencast,
url_screencast: url_screencast,
notify_email: notify_email,
notify_registrations: notify_registrations,
notify_useradd: notify_useradd,
notify_plan_expires: notify_plan_expires,
notify_plan_expiring: notify_plan_expiring,
notify_plan_changes: notify_plan_changes,
notify_plan_cancels: notify_plan_cancels,
notify_vt_create: notify_vt_create,
captcha_login: captcha_login,
captcha_register: captcha_register,
twofa_enable: twofa_enable,
vr_button: vr_button,
share_providers: share_providers,
disqus_shortname: disqus_shortname,
disqus_public_key: disqus_public_key,
disqus_allow_tour: disqus_allow_tour,
font_provider: font_provider,
days_expire_notification: days_expire_notification,
aws_s3_enabled: aws_s3_enabled,
aws_s3_type: aws_s3_type,
aws_s3_vt_auto: aws_s3_vt_auto,
aws_s3_bucket: aws_s3_bucket,
aws_s3_region: aws_s3_region,
aws_s3_key: aws_s3_key,
aws_s3_secret: aws_s3_secret,
aws_s3_accountid: aws_s3_accountid,
aws_s3_custom_domain: aws_s3_custom_domain,
globe_ion_token: globe_ion_token,
globe_arcgis_token: globe_arcgis_token,
globe_googlemaps_key: globe_googlemaps_key,
maintenance_backend: maintenance_backend,
maintenance_viewer: maintenance_viewer,
maintenance_ip: maintenance_ip,
enable_deepl: enable_deepl,
deepl_api_key: deepl_api_key
},
async: true,
success: function (json) {
var rsp = JSON.parse(json);
if (rsp.status == "ok") {
if(rsp.favicon!=1) {
generate_favicons(rsp.favicon);
}
window.settings_need_save = false;
$('#save_btn .icon i').removeClass('fas fa-circle-notch fa-spin').addClass('fas fa-check');
setTimeout(function () {
$('#save_btn .icon i').removeClass('fas fa-check').addClass('far fa-circle');
$('#save_btn').removeClass("disabled");
}, 1000);
if(validate_mail) {
$.ajax({
url: "ajax/send_email.php",
type: "POST",
data: {
type: 'validate',
email: smtp_from_email
},
timeout: 15000,
async: true,
success: function (json) {
var rsp = JSON.parse(json);
if (rsp.status == "ok") {
$('#validate_mail').html('<i style="color: green" class="fas fa-circle"></i> '+window.backend_labels.valid);
$('#validate_email').parent().removeClass('disabled');
} else {
alert(rsp.msg);
$('#validate_mail').html('<i style="color: red" class="fas fa-circle"></i> '+window.backend_labels.invalid);
$('#validate_email').parent().addClass('disabled');
}
$('#btn_validate_mail').removeClass("disabled");
},
error: function(){
alert('Timeout');
$('#validate_mail').html('<i style="color: red" class="fas fa-circle"></i> '+window.backend_labels.invalid);
$('#btn_validate_mail').removeClass("disabled");
},
});
} else {
if(window.current_language!=language) {
location.reload();
}
}
} else {
$('#save_btn .icon i').removeClass('fas fa-circle-notch fa-spin').addClass('fas fa-times');
$('#save_btn').removeClass('btn-success').addClass('btn-danger');
setTimeout(function () {
$('#save_btn .icon i').removeClass('fas fa-times').addClass('far fa-circle');
$('#save_btn').removeClass('btn-danger').addClass('btn-success');
$('#save_btn').removeClass("disabled");
}, 1000);
if(validate_mail) {
$('#btn_validate_mail').removeClass("disabled");
}
}
},
error: function() {
$('#save_btn .icon i').removeClass('fas fa-circle-notch fa-spin').addClass('fas fa-times');
$('#save_btn').removeClass('btn-success').addClass('btn-danger');
setTimeout(function () {
$('#save_btn .icon i').removeClass('fas fa-times').addClass('far fa-circle');
$('#save_btn').removeClass('btn-danger').addClass('btn-success');
$('#save_btn').removeClass("disabled");
}, 1000);
if(validate_mail) {
$('#btn_validate_mail').removeClass("disabled");
}
}
});
}
}
window.open_modal_enable_2fa = function() {
$('#code_2fa').val('');
$('#qr_code_2fa').html('<i class=\'fas fa-spin fa-circle-notch\' aria-hidden=\'true\'></i>');
$('#modal_enable_2fa').modal("show");
$.ajax({
url: "ajax/init_2fa.php",
type: "POST",
data: {},
timeout: 15000,
async: true,
success: function (json) {
var rsp = JSON.parse(json);
var secretkey = rsp.secretkey;
var qrcode_img = rsp.qrcode;
$('#code_2fa').val(secretkey);
$('#qr_code_2fa').html('<img src="data:image/png;base64,'+qrcode_img+'"/>');
}
});
}
window.continue_enable_2fa = function () {
$('#modal_enable_2fa').modal("hide");
$('#modal_check_enable_2fa').modal("show");
}
window.enable_2fa = function () {
var btn_html = $('#btn_enable_2fa').html();
$('#btn_enable_2fa').html('<i class="fas fa-circle-notch fa-spin"></i>');
$('#modal_check_enable_2fa button').addClass('disabled');
$('#code_check_2fa').removeClass('error-highlight');
var code = $('#code_check_2fa').val();
if(code=='') {
$('#btn_enable_2fa').html(btn_html);
$('#modal_check_enable_2fa button').removeClass('disabled');
$('#code_check_2fa').addClass('error-highlight');
} else {
$.ajax({
url: "ajax/enable_2fa.php",
type: "POST",
data: {
code: code,
},
timeout: 15000,
async: true,
success: function (json) {
var rsp = JSON.parse(json);
if(rsp.status=='ok') {
$('#btn_modal_enable_2fa').addClass('d-none');
$('#btn_modal_disable_2fa').removeClass('d-none');
$('#circle_2fa').css('color','green');
$('#modal_check_enable_2fa').modal("hide");
} else {
$('#code_check_2fa').addClass('error-highlight');
}
$('#btn_enable_2fa').html(btn_html);
$('#modal_check_enable_2fa button').removeClass('disabled');
},
error: function () {
$('#btn_enable_2fa').html(btn_html);
$('#modal_check_enable_2fa button').removeClass('disabled');
$('#code_check_2fa').addClass('error-highlight');
}
});
}
}
window.check_login_2fa = function () {
var btn_html = $('#btn_login_2fa').html();
$('#btn_login_2fa').html('<i class="fas fa-circle-notch fa-spin"></i>');
$('#modal_check_login_2fa button').addClass('disabled');
$('#code_check_2fa').removeClass('error-highlight');
var code = $('#code_check_2fa').val();
if(code=='') {
$('#btn_login_2fa').html(btn_html);
$('#modal_check_login_2fa button').removeClass('disabled');
$('#code_check_2fa').addClass('error-highlight');
} else {
$.ajax({
url: "ajax/check_login_2fa.php",
type: "POST",
data: {
code: code,
},
timeout: 15000,
async: true,
success: function (json) {
var rsp = JSON.parse(json);
if(rsp.status=='ok') {
$('#btn_login').addClass("disabled");
$('#modal_check_login_2fa').modal("hide");
location.href='index.php';
} else {
$('#code_check_2fa').addClass('error-highlight');
}
$('#btn_login_2fa').html(btn_html);
$('#modal_check_login_2fa button').removeClass('disabled');
},
error: function () {
$('#btn_login_2fa').html(btn_html);
$('#modal_check_login_2fa button').removeClass('disabled');
$('#code_check_2fa').addClass('error-highlight');
}
});
}
}
window.disable_2fa = function () {
var btn_html = $('#btn_disable_2fa').html();
$('#btn_disable_2fa').html('<i class="fas fa-circle-notch fa-spin"></i>');
$('#modal_disable_2fa button').addClass('disabled');
$('#code_disable_2fa').removeClass('error-highlight');
var code = $('#code_disable_2fa').val();
if(code=='') {
$('#btn_disable_2fa').html(btn_html);
$('#modal_disable_2fa button').removeClass('disabled');
$('#code_disable_2fa').addClass('error-highlight');
} else {
$.ajax({
url: "ajax/disable_2fa.php",
type: "POST",
data: {
code: code,
},
timeout: 15000,
async: true,
success: function (json) {
var rsp = JSON.parse(json);
if(rsp.status=='ok') {
$('#btn_modal_enable_2fa').removeClass('d-none');
$('#btn_modal_disable_2fa').addClass('d-none');
$('#circle_2fa').css('color','red');
$('#modal_disable_2fa').modal("hide");
} else {
$('#code_disable_2fa').addClass('error-highlight');
}
$('#btn_disable_2fa').html(btn_html);
$('#modal_disable_2fa button').removeClass('disabled');
},
error: function () {
$('#btn_disable_2fa').html(btn_html);
$('#modal_disable_2fa button').removeClass('disabled');
$('#code_disable_2fa').addClass('error-highlight');
}
});
}
}
window.add_virtualtour_sample = function () {
$('#modal_sample_tour').modal("show");
}
window.close_virtualtour_sample = function () {
$('#modal_sample_tour').modal("hide");
}
window.close_virtualtour_import = function () {
$('#modal_import_tour').modal("hide");
}
window.add_virtualtour = function (create_and_edit) {
window.create_and_edit = create_and_edit;
var complete = true;
var name = $('#name').val();
var author = $('#author').val();
var vt_type = $('#vt_type option:selected').attr('id');
var sample_data = $('#sample_data').is(':checked');
if(name=='') {
complete = false;
$('#name').addClass("error-highlight");
} else {
$('#name').removeClass("error-highlight");
}
if(complete) {
if(sample_data) {
add_virtualtour_sample();
return;
}
if(create_and_edit) {
var btn_html = $('#btn_create_edit_tour').html();
$('#btn_create_edit_tour').html('<i class="fas fa-circle-notch fa-spin"></i>');
} else {
var btn_html = $('#btn_create_tour').html();
$('#btn_create_tour').html('<i class="fas fa-circle-notch fa-spin"></i>');
}
$('#modal_new_virtualtour button').addClass("disabled");
$.ajax({
url: "ajax/add_virtual_tour.php",
type: "POST",
data: {
name: name,
author: author,
vt_type: vt_type
},
async: true,
success: function (json) {
var rsp = JSON.parse(json);
if (rsp.status == "ok") {
$.ajax({
url: "ajax/send_email.php",
type: "POST",
data: {
type: 'vt_create',
id_user: window.id_user,
id_vt: rsp.id
},
timeout: 15000,
async: true,
success: function () {}
});
if(window.create_and_edit) {
if (rsp.id != "") {
location.href="index.php?p=edit_virtual_tour&id="+rsp.id;
} else {
if(create_and_edit) {
$('#btn_create_edit_tour').html(btn_html);
} else {
$('#btn_create_tour').html(btn_html);
}
$('#modal_new_virtualtour button').removeClass("disabled");
}
} else {
if(window.wizard_step!=-1) {
location.href = 'index.php?p=virtual_tours&wstep=5';
} else {
location.reload();
}
}
} else {
if(create_and_edit) {
$('#btn_create_edit_tour').html(btn_html);
} else {
$('#btn_create_tour').html(btn_html);
}
$('#modal_new_virtualtour button').removeClass("disabled");
}
}
});
}
};
window.change_map_type = function () {
var map_type = $('#map_type option:selected').attr('id');
switch(map_type) {
case 'map':
$('#frm').addClass('disabled');
$('#btn_create_map').prop('disabled',false);
break;
case 'floorplan':
$('#frm').removeClass('disabled');
$('#btn_create_map').prop('disabled',true);
break;
}
}
window.add_map = function () {
var complete = true;
var name = $('#name').val();
var map_image = $('#preview_image img').attr('src');
var map_type = $('#map_type option:selected').attr('id');
if(name=='') {
complete = false;
$('#name').addClass("error-highlight");
} else {
$('#name').removeClass("error-highlight");
}
if(complete) {
$('#modal_new_map button').addClass("disabled");
$.ajax({
url: "ajax/add_map.php",
type: "POST",
data: {
id_virtualtour: window.id_virtualtour,
name: name,
map_image: map_image,
map_type: map_type
},
async: true,
success: function (json) {
var rsp = JSON.parse(json);
if (rsp.status == "ok") {
$('#modal_new_map button').removeClass("disabled");
$('#modal_new_map').modal("hide");
var id_map = rsp.id;
location.href = "index.php?p=edit_map&id="+id_map;
} else {
$('#modal_new_map button').removeClass("disabled");
}
}
});
}
};
window.edit_map_image = function() {
$('#modal_edit_map button').addClass("disabled");
var map_image = $('#preview_image img').attr('src');
$.ajax({
url: "ajax/change_map_image.php",
type: "POST",
data: {
id_virtualtour: window.id_virtualtour,
id_map: window.id_map_sel,
map_image: map_image
},
async: true,
success: function (json) {
var rsp = JSON.parse(json);
if (rsp.status == "ok") {
$('#modal_edit_map').modal("hide");
location.reload();
} else {
$('#modal_edit_map button').removeClass("disabled");
}
}
});
}
window.add_room = function () {
var complete = true;
var name = $('#name').val();
var panorama_image = $('#preview_image img').attr('src');
var type_pano = $('#type_pano option:selected').attr('id');
if(name=='') {
complete = false;
$('#name').addClass("error-highlight");
} else {
$('#name').removeClass("error-highlight");
}
var panorama_url = $('#panorama_url').val();
switch(type_pano) {
case 'hls':
if(panorama_url=='') {
complete = false;
$('#panorama_url').addClass("error-highlight");
} else {
$('#panorama_url').removeClass("error-highlight");
}
break;
case 'video':
panorama_image = panorama_image.replace(/^data:image\/(jpeg|jpg);base64,/, "");
break;
case 'ai_room':
panorama_image = $('#ai_image').val();
break;
}
if(complete) {
$('#modal_new_room .btn').addClass("disabled");
var btn_html = $('#btn_create_room').html();
$('#btn_create_room').html('<i class="fas fa-circle-notch fa-spin"></i>');
$.ajax({
url: "ajax/add_room.php",
type: "POST",
data: {
id_virtualtour: window.id_virtualtour,
name: name,
type_pano: type_pano,
panorama_image: panorama_image,
panorama_video: window.panorama_video,
panorama_url: panorama_url,
panorama_json: window.panorama_json
},
async: true,
success: function (json) {
var rsp = JSON.parse(json);
$('#btn_create_room').html(btn_html);
if (rsp.status == "ok") {
$('#modal_new_room .btn').removeClass("disabled");
$('#modal_new_room').modal("hide");
var id_room = rsp.id;
if(window.wizard_step!=-1) {
if(window.wizard_step==12) {
location.href = "index.php?p=edit_room&id="+id_room+"&wstep=16";
} else {
location.href = "index.php?p=edit_room&id="+id_room+"&wstep=10";
}
} else {
location.href = "index.php?p=edit_room&id="+id_room;
}
} else {
$('#modal_new_room button').removeClass("disabled");
}
}
});
}
};
window.add_bulk_room = function (id_virtualtour,panorama_image,name) {
$.ajax({
url: "ajax/add_room.php",
type: "POST",
data: {
id_virtualtour: id_virtualtour,
name: name,
panorama_image: panorama_image
},
async: true,
success: function (json) {
window.rooms_created++;
$('#rooms_created').html(window.rooms_created);
}
});
};
window.add_bulk_map = function (id_virtualtour,map_image,name) {
$.ajax({
url: "ajax/add_map.php",
type: "POST",
data: {
id_virtualtour: id_virtualtour,
name: name,
map_image: map_image,
map_type: 'floorplan'
},
async: true,
success: function (json) {
window.maps_created++;
$('#maps_created').html(window.maps_created);
}
});
};
window.save_user = function(id_user_edit) {
var complete = true;
var username = $('#username').val();
var email = $('#email').val();
var role = $('#role option:selected').attr('id');
var plan = $('#plan option:selected').attr('id');
var language = $('#language option:selected').attr('id');
var active = ($('#active').is(':checked')) ? 1 : 0;
var expire_plan_date_manual_date = $('#expire_plan_date_manual_date').val();
var expire_plan_date_manual_time = $('#expire_plan_date_manual_time').val();
if(username=='') {
complete = false;
$('#username').addClass("error-highlight");
} else {
$('#username').removeClass("error-highlight");
}
if(email=='') {
complete = false;
$('#email').addClass("error-highlight");
} else {
$('#email').removeClass("error-highlight");
}
if(complete) {
$('#save_btn .icon i').removeClass('far fa-circle').addClass('fas fa-circle-notch fa-spin');
$('#save_btn').addClass("disabled");
$.ajax({
url: "ajax/save_user.php",
type: "POST",
data: {
id_svt: id_user_edit,
username_svt: username,
email_svt: email,
role_svt: role,
plan_svt: plan,
language_svt: language,
active_svt: active,
expire_plan_date_manual_date_svt: expire_plan_date_manual_date,
expire_plan_date_manual_time_svt: expire_plan_date_manual_time
},
async: true,
success: function (json) {
var rsp = JSON.parse(json);
if(rsp.status=="ok") {
window.user_need_save = false;
if(rsp.reload==1) {
location.reload();
} else {
$('#save_btn .icon i').removeClass('fas fa-circle-notch fa-spin').addClass('fas fa-check');
setTimeout(function () {
$('#save_btn .icon i').removeClass('fas fa-check').addClass('far fa-circle');
$('#save_btn').removeClass("disabled");
},1000);
}
} else {
alert(rsp.msg);
$('#save_btn .icon i').removeClass('fas fa-circle-notch fa-spin').addClass('fas fa-times');
$('#save_btn').removeClass('btn-success').addClass('btn-danger');
setTimeout(function () {
$('#save_btn .icon i').removeClass('fas fa-times').addClass('far fa-circle');
$('#save_btn').removeClass('btn-danger').addClass('btn-success');
$('#save_btn').removeClass("disabled");
},1000);
}
},
error: function() {
$('#save_btn .icon i').removeClass('fas fa-circle-notch fa-spin').addClass('fas fa-times');
$('#save_btn').removeClass('btn-success').addClass('btn-danger');
setTimeout(function () {
$('#save_btn .icon i').removeClass('fas fa-times').addClass('far fa-circle');
$('#save_btn').removeClass('btn-danger').addClass('btn-success');
$('#save_btn').removeClass("disabled");
},1000);
}
});
}
}
window.save_globe = function(id_globe,reload) {
$('#friendly_url').removeClass("error-highlight");
var complete = true;
var name = $('#name').val();
var pointer_size = $('#pointer_size').val();
var pointer_color = $('#pointer_color').val();
var pointer_border = $('#pointer_border').val();
var center_altitude = $('#center_altitude').val();
var min_altitude = $('#min_altitude').val();
var center_lat = $('#center_lat').val();
var center_lon = $('#center_lon').val();
var zoom_duration = $('#zoom_duration').val();
var default_view = $('#default_view option:selected').attr('id');
var type = $('#type option:selected').attr('id');
var custom_css = window.editor_css.getValue();
if(name=='') {
complete = false;
$('#name').addClass("error-highlight");
} else {
$('#name').removeClass("error-highlight");
}
if(complete) {
$('#save_btn .icon i').removeClass('far fa-circle').addClass('fas fa-circle-notch fa-spin');
$('#save_btn').addClass("disabled");
$.ajax({
url: "ajax/save_globe.php",
type: "POST",
data: {
id: id_globe,
name: name,
pointer_size: pointer_size,
pointer_color: pointer_color,
pointer_border: pointer_border,
logo: window.s_logo_image,
custom_css: custom_css,
center_altitude: center_altitude,
min_altitude: min_altitude,
center_lat: center_lat,
center_lon: center_lon,
zoom_duration: zoom_duration,
default_view: default_view,
type: type
},
async: true,
success: function (json) {
var rsp = JSON.parse(json);
if(rsp.status=="ok") {
if(rsp.favicon!=1) {
generate_favicons(rsp.favicon);
}
window.globe_need_save = false;
if(reload) {
get_globe_map(id_globe,false);
$('#btn_add_map_point').removeClass('disabled');
$('#msg_select_point').show();
$('.point_settings').hide();
}
$('#save_btn .icon i').removeClass('fas fa-circle-notch fa-spin').addClass('fas fa-check');
setTimeout(function () {
$('#save_btn .icon i').removeClass('fas fa-check').addClass('far fa-circle');
$('#save_btn').removeClass("disabled");
},1000);
} else {
if(rsp.status=='error_furl') {
$('#friendly_url').addClass("error-highlight");
}
$('#save_btn .icon i').removeClass('fas fa-circle-notch fa-spin').addClass('fas fa-times');
$('#save_btn').removeClass('btn-success').addClass('btn-danger');
setTimeout(function () {
$('#save_btn .icon i').removeClass('fas fa-times').addClass('far fa-circle');
$('#save_btn').removeClass('btn-danger').addClass('btn-success');
$('#save_btn').removeClass("disabled");
},1000);
}
},
error: function() {
$('#save_btn .icon i').removeClass('fas fa-circle-notch fa-spin').addClass('fas fa-times');
$('#save_btn').removeClass('btn-success').addClass('btn-danger');
setTimeout(function () {
$('#save_btn .icon i').removeClass('fas fa-times').addClass('far fa-circle');
$('#save_btn').removeClass('btn-danger').addClass('btn-success');
$('#save_btn').removeClass("disabled");
},1000);
}
});
}
}
window.save_showcase = function(id_showcase) {
$('#friendly_url').removeClass("error-highlight");
var complete = true;
var name = $('#name').val();
var bg_color = $('#bg_color').val();
var header_html = window.editor_html_h.getValue();
var footer_html = window.editor_html_f.getValue();
var custom_css = window.editor_css.getValue();
if(name=='') {
complete = false;
$('#name').addClass("error-highlight");
} else {
$('#name').removeClass("error-highlight");
}
var list_s_vt = [];
var list_s_type = [];
var list_s_priority = [];
$('.list_s_vt input[type=checkbox]').each(function () {
var id = this.id;
if(this.checked) {
list_s_vt.push(id);
list_s_type.push($('#t_'+id+' option:selected').attr('id'));
list_s_priority.push($('#p_'+id).val());
}
});
var sort_settings_t = $('#sort_settings option');
var sort_settings = {};
$(sort_settings_t).each(function(index, elem){
var id = $(this).attr('id');
if(id !== undefined) {
if($(this).is(':selected')) {
sort_settings[id]=1;
} else {
sort_settings[id]=0;
}
}
});
var sort_default = $('#sort_default option:selected').attr('id');
sort_settings['default'] = sort_default;
var sort_settings_json = JSON.stringify(sort_settings);
if(complete) {
$('#save_btn .icon i').removeClass('far fa-circle').addClass('fas fa-circle-notch fa-spin');
$('#save_btn').addClass("disabled");
$.ajax({
url: "ajax/save_showcase.php",
type: "POST",
data: {
id: id_showcase,
name: name,
bg_color: bg_color,
logo: window.s_logo_image,
banner: window.s_banner_image,
list_s_vt: list_s_vt,
list_s_type: list_s_type,
list_s_priority: list_s_priority,
header_html: header_html,
footer_html: footer_html,
custom_css: custom_css,
sort_settings: sort_settings_json
},
async: true,
success: function (json) {
var rsp = JSON.parse(json);
if(rsp.status=="ok") {
if(rsp.favicon!=1) {
generate_favicons(rsp.favicon);
}
window.showcase_need_save = false;
$('#save_btn .icon i').removeClass('fas fa-circle-notch fa-spin').addClass('fas fa-check');
setTimeout(function () {
$('#save_btn .icon i').removeClass('fas fa-check').addClass('far fa-circle');
$('#save_btn').removeClass("disabled");
},1000);
} else {
if(rsp.status=='error_furl') {
$('#friendly_url').addClass("error-highlight");
}
$('#save_btn .icon i').removeClass('fas fa-circle-notch fa-spin').addClass('fas fa-times');
$('#save_btn').removeClass('btn-success').addClass('btn-danger');
setTimeout(function () {
$('#save_btn .icon i').removeClass('fas fa-times').addClass('far fa-circle');
$('#save_btn').removeClass('btn-danger').addClass('btn-success');
$('#save_btn').removeClass("disabled");
},1000);
}
},
error: function() {
$('#save_btn .icon i').removeClass('fas fa-circle-notch fa-spin').addClass('fas fa-times');
$('#save_btn').removeClass('btn-success').addClass('btn-danger');
setTimeout(function () {
$('#save_btn .icon i').removeClass('fas fa-times').addClass('far fa-circle');
$('#save_btn').removeClass('btn-danger').addClass('btn-success');
$('#save_btn').removeClass("disabled");
},1000);
}
});
}
}
window.save_advertisement = function(id_advertisement) {
var complete = true;
var name = $('#name').val();
if(name=='') {
complete = false;
$('#name').addClass("error-highlight");
} else {
$('#name').removeClass("error-highlight");
}
var link = $('#link').val();
var countdown = $('#countdown').val();
var type = $('#type option:selected').attr('id');
var iframe_link = $('#iframe_link').val();
var auto_assign = ($('#auto_assign').is(':checked')) ? 1 : 0;
var list_p_vt = [];
$('.list_p_vt input[type=checkbox]').each(function () {
if(this.checked) {
list_p_vt.push(this.id);
}
});
var list_s_vt = [];
$('.list_s_vt input[type=checkbox]').each(function () {
if(this.checked) {
list_s_vt.push(this.id);
}
});
if(complete) {
$('#save_btn .icon i').removeClass('far fa-circle').addClass('fas fa-circle-notch fa-spin');
$('#save_btn').addClass("disabled");
$.ajax({
url: "ajax/save_announce.php",
type: "POST",
data: {
id: id_advertisement,
name: name,
link: link,
countdown: countdown,
auto_assign: auto_assign,
type: type,
image: window.image_advertisement,
video: window.video_advertisement,
iframe_link: iframe_link,
list_p_vt: list_p_vt,
list_s_vt: list_s_vt
},
async: true,
success: function (json) {
var rsp = JSON.parse(json);
if(rsp.status=="ok") {
window.advertisement_need_save = false;
$('#save_btn .icon i').removeClass('fas fa-circle-notch fa-spin').addClass('fas fa-check');
setTimeout(function () {
$('#save_btn .icon i').removeClass('fas fa-check').addClass('far fa-circle');
$('#save_btn').removeClass("disabled");
},1000);
} else {
$('#save_btn .icon i').removeClass('fas fa-circle-notch fa-spin').addClass('fas fa-times');
$('#save_btn').removeClass('btn-success').addClass('btn-danger');
setTimeout(function () {
$('#save_btn .icon i').removeClass('fas fa-times').addClass('far fa-circle');
$('#save_btn').removeClass('btn-danger').addClass('btn-success');
$('#save_btn').removeClass("disabled");
},1000);
}
},
error: function() {
$('#save_btn .icon i').removeClass('fas fa-circle-notch fa-spin').addClass('fas fa-times');
$('#save_btn').removeClass('btn-success').addClass('btn-danger');
setTimeout(function () {
$('#save_btn .icon i').removeClass('fas fa-times').addClass('far fa-circle');
$('#save_btn').removeClass('btn-danger').addClass('btn-success');
$('#save_btn').removeClass("disabled");
},1000);
}
});
}
}
window.save_product = function(id_product) {
var complete = true;
var array_lang = {};
var name = $('#name').val();
array_lang['name'] = {};
$('.input_lang[data-target-id="name"]').each(function() {
var lang = $(this).attr('data-lang');
var value = $(this).val();
array_lang['name'][lang]=value;
});
var price = $('#price').val();
var description = window.description_editor.root.innerHTML;
array_lang['description'] = {};
$('.input_lang[data-target-id="description"]').each(function() {
var lang = $(this).attr('data-lang');
var value = window.description_editor_lang[lang].root.innerHTML;
array_lang['description'][lang]=value;
});
var link = $('#link').val();
var purchase_type = $('#type option:selected').attr('id').replace('t_','');
var button_icon = $('#button_icon').val();
var button_text = $('#button_text').val();
array_lang['button_text'] = {};
$('.input_lang[data-target-id="button_text"]').each(function() {
var lang = $(this).attr('data-lang');
var value = $(this).val();
array_lang['button_text'][lang]=value;
});
var button_background = $('#button_background').val();
var button_color = $('#button_color').val();
var custom_currency = $('#custom_currency').val();
if(name=='') {
complete = false;
$('#name').addClass("error-highlight");
} else {
$('#name').removeClass("error-highlight");
}
var array_lang_json = JSON.stringify(array_lang);
if(complete) {
$('#save_btn .icon i').removeClass('far fa-circle').addClass('fas fa-circle-notch fa-spin');
$('#save_btn').addClass("disabled");
$.ajax({
url: "ajax/save_product.php",
type: "POST",
data: {
id: id_product,
name: name,
price: price,
description: description,
link: link,
purchase_type: purchase_type,
button_icon: button_icon,
button_text: button_text,
button_background: button_background,
button_color: button_color,
custom_currency: custom_currency,
array_lang: array_lang_json
},
async: true,
success: function (json) {
var rsp = JSON.parse(json);
if(rsp.status=="ok") {
window.product_need_save = false;
$('#save_btn .icon i').removeClass('fas fa-circle-notch fa-spin').addClass('fas fa-check');
setTimeout(function () {
$('#save_btn .icon i').removeClass('fas fa-check').addClass('far fa-circle');
$('#save_btn').removeClass("disabled");
},1000);
} else {
$('#save_btn .icon i').removeClass('fas fa-circle-notch fa-spin').addClass('fas fa-times');
$('#save_btn').removeClass('btn-success').addClass('btn-danger');
setTimeout(function () {
$('#save_btn .icon i').removeClass('fas fa-times').addClass('far fa-circle');
$('#save_btn').removeClass('btn-danger').addClass('btn-success');
$('#save_btn').removeClass("disabled");
},1000);
}
},
error: function() {
$('#save_btn .icon i').removeClass('fas fa-circle-notch fa-spin').addClass('fas fa-times');
$('#save_btn').removeClass('btn-success').addClass('btn-danger');
setTimeout(function () {
$('#save_btn .icon i').removeClass('fas fa-times').addClass('far fa-circle');
$('#save_btn').removeClass('btn-danger').addClass('btn-success');
$('#save_btn').removeClass("disabled");
},1000);
}
});
}
}
window.modal_delete_showcase = function(id) {
$('#btn_delete_showcase').attr('onclick','delete_showcase(\''+id+'\');');
$('#modal_delete_showcase').modal("show");
}
window.modal_delete_globe = function(id) {
$('#btn_delete_globe').attr('onclick','delete_globe(\''+id+'\');');
$('#modal_delete_globe').modal("show");
}
window.delete_showcase = function (id) {
$('#modal_delete_showcase button').addClass("disabled");
$.ajax({
url: "ajax/delete_showcase.php",
type: "POST",
data: {
id_showcase: id
},
async: true,
success: function (json) {
var rsp = JSON.parse(json);
if (rsp.status == "ok") {
$('#modal_delete_showcase button').removeClass("disabled");
$('#modal_delete_showcase').modal("hide");
location.href = 'index.php?p=showcases';
} else {
$('#modal_delete_showcase button').removeClass("disabled");
}
}
});
};
window.delete_globe = function (id) {
$('#modal_delete_globe button').addClass("disabled");
$.ajax({
url: "ajax/delete_globe.php",
type: "POST",
data: {
id_globe: id
},
async: true,
success: function (json) {
var rsp = JSON.parse(json);
if (rsp.status == "ok") {
$('#modal_delete_globe button').removeClass("disabled");
$('#modal_delete_globe').modal("hide");
location.href = 'index.php?p=globes';
} else {
$('#modal_delete_globe button').removeClass("disabled");
}
}
});
};
window.modal_delete_advertisement = function(id) {
$('#btn_delete_advertisement').attr('onclick','delete_advertisement(\''+id+'\');');
$('#modal_delete_advertisement').modal("show");
}
window.delete_advertisement = function (id) {
$('#modal_delete_advertisement button').addClass("disabled");
$.ajax({
url: "ajax/delete_announce.php",
type: "POST",
data: {
id_advertisement: id
},
async: true,
success: function (json) {
var rsp = JSON.parse(json);
if (rsp.status == "ok") {
$('#modal_delete_advertisement button').removeClass("disabled");
$('#modal_delete_advertisement').modal("hide");
location.href = 'index.php?p=advertisements';
} else {
$('#modal_delete_advertisement button').removeClass("disabled");
}
}
});
};
window.modal_delete_product = function(id) {
$('#btn_delete_product').attr('onclick','delete_product(\''+id+'\');');
$('#modal_delete_product').modal("show");
}
window.delete_product = function (id) {
$('#modal_delete_product button').addClass("disabled");
$.ajax({
url: "ajax/delete_product.php",
type: "POST",
data: {
id_product: id
},
async: true,
success: function (json) {
var rsp = JSON.parse(json);
if (rsp.status == "ok") {
$('#modal_delete_product button').removeClass("disabled");
$('#modal_delete_product').modal("hide");
location.href = 'index.php?p=products';
} else {
$('#modal_delete_product button').removeClass("disabled");
}
}
});
};
window.modal_delete_video_project = function(id) {
$('#btn_delete_video_project').attr('onclick','delete_video_project(\''+id+'\');');
$('#modal_delete_video_project').modal("show");
}
window.delete_video_project = function (id) {
$('#modal_delete_video_project button').addClass("disabled");
$.ajax({
url: "ajax/delete_video_project.php",
type: "POST",
data: {
id_video: id
},
async: true,
success: function (json) {
var rsp = JSON.parse(json);
if (rsp.status == "ok") {
$('#modal_delete_video_project button').removeClass("disabled");
$('#modal_delete_video_project').modal("hide");
location.href = 'index.php?p=video';
} else {
$('#modal_delete_video_project button').removeClass("disabled");
}
}
});
};
window.modal_delete_user = function(id) {
$('#btn_delete_user').attr('onclick','delete_user(\''+id+'\');');
$('#modal_delete_user').modal("show");
}
window.delete_user = function (id) {
var id_user_assign = $('#user_assign option:selected').attr('id');
$('#modal_delete_user button').addClass("disabled");
$.ajax({
url: "ajax/delete_user.php",
type: "POST",
data: {
id_user: id,
id_user_assign: id_user_assign
},
async: true,
success: function (json) {
var rsp = JSON.parse(json);
if (rsp.status == "ok") {
$('#modal_delete_user button').removeClass("disabled");
$('#modal_delete_user').modal("hide");
location.href = 'index.php?p=users';
} else {
$('#modal_delete_user button').removeClass("disabled");
}
}
});
};
window.save_profile = function(complete_profile) {
var complete = true;
var username = $('#username').val();
var email = $('#email').val();
var avatar = $('#avatar_edit').attr('src');
var language = $('#language option:selected').attr('id');
var first_name = $('#first_name').val();
var last_name = $('#last_name').val();
var company = $('#company').val();
var tax_id = $('#tax_id').val();
var street = $('#street').val();
var city = $('#city').val();
var province = $('#province').val();
var postal_code = $('#postal_code').val();
var country = $('#country option:selected').val();
var tel = $('#tel').val();
if(username=='') {
complete = false;
$('#username').addClass("error-highlight");
} else {
$('#username').removeClass("error-highlight");
}
if(email=='') {
complete = false;
$('#email').addClass("error-highlight");
} else {
$('#email').removeClass("error-highlight");
}
if($('#first_name').attr('data-mandatory')=='true' && first_name=='') {
complete = false;
$('#first_name').addClass("error-highlight");
} else {
$('#first_name').removeClass("error-highlight");
}
if($('#last_name').attr('data-mandatory')=='true' && last_name=='') {
complete = false;
$('#last_name').addClass("error-highlight");
} else {
$('#last_name').removeClass("error-highlight");
}
if($('#company').attr('data-mandatory')=='true' && company=='') {
complete = false;
$('#company').addClass("error-highlight");
} else {
$('#company').removeClass("error-highlight");
}
if($('#tax_id').attr('data-mandatory')=='true' && tax_id=='') {
complete = false;
$('#tax_id').addClass("error-highlight");
} else {
$('#tax_id').removeClass("error-highlight");
}
if($('#street').attr('data-mandatory')=='true' && street=='') {
complete = false;
$('#street').addClass("error-highlight");
} else {
$('#street').removeClass("error-highlight");
}
if($('#city').attr('data-mandatory')=='true' && city=='') {
complete = false;
$('#city').addClass("error-highlight");
} else {
$('#city').removeClass("error-highlight");
}
if($('#province').attr('data-mandatory')=='true' && province=='') {
complete = false;
$('#province').addClass("error-highlight");
} else {
$('#province').removeClass("error-highlight");
}
if($('#postal_code').attr('data-mandatory')=='true' && postal_code=='') {
complete = false;
$('#postal_code').addClass("error-highlight");
} else {
$('#postal_code').removeClass("error-highlight");
}
if($('#country').attr('data-mandatory')=='true' && country=='') {
complete = false;
$('button[data-id="country"]').addClass("error-highlight");
} else {
$('button[data-id="country"]').removeClass("error-highlight");
}
if($('#tel').attr('data-mandatory')=='true' && tel=='') {
complete = false;
$('#tel').addClass("error-highlight");
} else {
$('#tel').removeClass("error-highlight");
}
if(complete) {
$('#save_btn .icon i').removeClass('far fa-circle').addClass('fas fa-circle-notch fa-spin');
$('#save_btn').addClass("disabled");
$('#btn_save_continue_profile').addClass('disabled');
$.ajax({
url: "ajax/save_profile.php",
type: "POST",
data: {
username_svt: username,
email_svt: email,
language_svt: language,
avatar_svt: avatar,
first_name: first_name,
last_name: last_name,
company: company,
tax_id: tax_id,
street: street,
city: city,
province: province,
postal_code: postal_code,
country: country,
tel: tel
},
async: true,
success: function (json) {
var rsp = JSON.parse(json);
if(rsp.status=="ok") {
window.user_need_save = false;
if(complete_profile) {
location.href = 'index.php';
} else {
$('#save_btn .icon i').removeClass('fas fa-circle-notch fa-spin').addClass('fas fa-check');
setTimeout(function () {
$('#save_btn .icon i').removeClass('fas fa-check').addClass('far fa-circle');
$('#save_btn').removeClass("disabled");
if(rsp.reload_page==1) {
location.href = 'index.php?p=edit_profile';
}
},200);
}
} else {
if(!complete_profile) {
alert(rsp.msg);
$('#save_btn .icon i').removeClass('fas fa-circle-notch fa-spin').addClass('fas fa-times');
$('#save_btn').removeClass('btn-success').addClass('btn-danger');
setTimeout(function () {
$('#save_btn .icon i').removeClass('fas fa-times').addClass('far fa-circle');
$('#save_btn').removeClass('btn-danger').addClass('btn-success');
$('#save_btn').removeClass("disabled");
}, 1000);
} else {
$('#btn_save_continue_profile').removeClass('disabled');
}
}
},
error: function() {
$('#save_btn .icon i').removeClass('fas fa-circle-notch fa-spin').addClass('fas fa-times');
$('#save_btn').removeClass('btn-success').addClass('btn-danger');
setTimeout(function () {
$('#save_btn .icon i').removeClass('fas fa-times').addClass('far fa-circle');
$('#save_btn').removeClass('btn-danger').addClass('btn-success');
$('#save_btn').removeClass("disabled");
},1000);
}
});
}
}
window.save_room = function(goto,apply_preset_to_vt) {
var complete = true;
var array_lang = {};
var name = $('#name').val();
array_lang['name'] = {};
$('.input_lang[data-target-id="name"]').each(function() {
var lang = $(this).attr('data-lang');
var value = $(this).val();
array_lang['name'][lang]=value;
});
var yaw_pitch = $('#yaw_pitch').val();
var northOffset = $('#northOffset').val();
var panorama_image = $('#panorama_image').attr('src');
var allow_pitch = ($('#allow_pitch').is(':checked')) ? 1 : 0;
var allow_hfov = ($('#allow_hfov').is(':checked')) ? 1 : 0;
var visible = ($('#visible').is(':checked')) ? 1 : 0;
var visible_list = ($('#visible_list').is(':checked')) ? 1 : 0;
var show_nadir = ($('#show_nadir').is(':checked')) ? 1 : 0;
var annotation_title = $('#annotation_title').val();
array_lang['annotation_title'] = {};
$('.input_lang[data-target-id="annotation_title"]').each(function() {
var lang = $(this).attr('data-lang');
var value = $(this).val();
array_lang['annotation_title'][lang]=value;
});
var annotation_description = $('#annotation_description').val();
array_lang['annotation_description'] = {};
$('.input_lang[data-target-id="annotation_description"]').each(function() {
var lang = $(this).attr('data-lang');
var value = $(this).val();
array_lang['annotation_description'][lang]=value;
});
var min_pitch = $('#min_pitch').val();
var max_pitch = $('#max_pitch').val();
var min_yaw = $('#min_yaw').val();
var max_yaw = $('#max_yaw').val();
var haov = $('#haov').val();
var vaov = $('#vaov').val();
var hfov = $('#hfov').val();
var h_pitch = $('#h_pitch').val();
var h_roll = $('#h_roll').val();
var protect_type = $('#protect_type option:selected').attr('id');
var passcode_title = $('#passcode_title').val();
array_lang['passcode_title'] = {};
$('.input_lang[data-target-id="passcode_title"]').each(function() {
var lang = $(this).attr('data-lang');
var value = $(this).val();
array_lang['passcode_title'][lang]=value;
});
var passcode_description = $('#passcode_description').val();
array_lang['passcode_description'] = {};
$('.input_lang[data-target-id="passcode_description"]').each(function() {
var lang = $(this).attr('data-lang');
var value = $(this).val();
array_lang['passcode_description'][lang]=value;
});
var passcode = $('#passcode_code').val();
var protect_mc_form = $('#protect_mc_form').val();
var transition_override = ($('#transition_override').is(':checked')) ? 1 : 0;
var transition_time = $('#transition_time').val();
var transition_fadeout = $('#transition_fadeout').val();
var transition_zoom = $('#transition_zoom').val();
var transition_effect = $('#transition_effect option:selected').attr('id');
var brightness = $('#brightness').val();
var contrast = $('#contrast').val();
var saturate = $('#saturate').val();
var grayscale = $('#grayscale').val();
var effect = $('#effect option:selected').attr('id');
var main_view_tooltip = $('#main_view_tooltip').val();
array_lang['main_view_tooltip'] = {};
$('.input_lang[data-target-id="main_view_tooltip"]').each(function() {
var lang = $(this).attr('data-lang');
var value = $(this).val();
array_lang['main_view_tooltip'][lang]=value;
});
var protect_send_email = ($('#protect_send_email').is(':checked')) ? 1 : 0;
var protect_email = $('#protect_email').val();
var protect_remember = ($('#protect_remember').is(':checked')) ? 1 : 0;
if(window.room_type=='video' || window.room_type=='hls') {
var audio_track_enable = ($('#audio_track_enable').is(':checked')) ? 1 : 0;
var song_loop = 0;
var song_once = 0;
} else {
var audio_track_enable = 0;
var song_loop = ($('#song_loop').is(':checked')) ? 1 : 0;
var song_once = ($('#song_once').is(':checked')) ? 1 : 0;
}
if(window.room_type=='hls') {
var panorama_url = $('#panorama_url').val();
} else {
var panorama_url = '';
}
var song_bg_volume = $('#song_bg_volume').val();
if(name=='') {
complete = false;
$('#name').addClass("error-highlight");
} else {
$('#name').removeClass("error-highlight");
}
var logo_height = $('#logo_height').val();
if(window.room_type=='video') {
var video_end_goto = $('#video_end_goto option:selected').attr('id');
} else {
var video_end_goto = 0;
}
var lp_duration = $('#lp_duration').val();
var lp_fade = $('#lp_fade').val();
if(complete) {
$('#save_btn .icon i').removeClass('far fa-circle').addClass('fas fa-circle-notch fa-spin');
$('#save_btn').addClass("disabled");
if(goto=='blur') {
$('#btn_edit_blur').addClass("disabled");
}
var array_lang_json = JSON.stringify(array_lang);
$.ajax({
url: "ajax/save_room.php",
type: "POST",
data: {
id_virtualtour: window.id_virtualtour,
id_room: id_room,
name: name,
logo: window.logo,
logo_height: logo_height,
yaw_pitch: yaw_pitch,
northOffset: northOffset,
change_image: change_image,
change_video: change_video,
change_json: change_json,
panorama_image: panorama_image,
panorama_video: panorama_video,
panorama_json: panorama_json,
panorama_url: panorama_url,
allow_pitch: allow_pitch,
allow_hfov: allow_hfov,
visible: visible,
visible_list: visible_list,
min_pitch: min_pitch,
max_pitch: max_pitch,
min_yaw: min_yaw,
max_yaw: max_yaw,
h_pitch: h_pitch,
h_roll: h_roll,
haov: haov,
vaov: vaov,
hfov: hfov,
audio_track_enable: audio_track_enable,
song_loop: song_loop,
song_once: song_once,
song: window.song,
song_bg_volume: song_bg_volume,
annotation_title: annotation_title,
annotation_description: annotation_description,
protect_type: protect_type,
passcode_title: passcode_title,
passcode_description: passcode_description,
passcode: passcode,
protect_mc_form: protect_mc_form,
transition_time: transition_time,
transition_fadeout: transition_fadeout,
transition_zoom: transition_zoom,
transition_override: transition_override,
transition_effect: transition_effect,
brightness: brightness,
contrast: contrast,
saturate: saturate,
grayscale: grayscale,
effect: effect,
thumb_image: window.thumb_image,
virtual_staging: window.virtual_staging,
main_view_tooltip: main_view_tooltip,
background_color: window.background_color,
apply_preset_to_vt: apply_preset_to_vt,
protect_send_email: protect_send_email,
protect_email: protect_email,
protect_remember: protect_remember,
video_end_goto: video_end_goto,
lp_duration: lp_duration,
lp_fade: lp_fade,
show_nadir: show_nadir,
array_lang: array_lang_json
},
async: true,
success: function (json) {
var rsp = JSON.parse(json);
if(rsp.status=="ok") {
window.room_need_save = false;
if(goto=='blur') {
window.change_image = 0;
window.change_video = 0;
location.href = 'index.php?p=edit_blur&id='+id_room;
} else {
if(window.change_image || window.change_video) {
if(panorama_image!='') {
if(panorama_image.includes('tmp_panoramas/')) {
if(window.s3_enabled==1) {
var new_pano_image = window.s3_url+"viewer/panoramas/"+panorama_image.replace('tmp_panoramas/',"");
} else {
var new_pano_image = "../viewer/panoramas/"+panorama_image.replace('tmp_panoramas/',"");
}
$('#panorama_image').attr('src',new_pano_image);
$('#panorama_image').attr('data-src',new_pano_image);
}
}
}
window.change_image = 0;
window.change_video = 0;
if(apply_preset_to_vt) {
$('#modal_apply_preset_tour button').removeClass('disabled');
$('#modal_apply_preset_tour').modal('hide');
}
$('#save_btn .icon i').removeClass('fas fa-circle-notch fa-spin').addClass('fas fa-check');
setTimeout(function () {
$('#save_btn .icon i').removeClass('fas fa-check').addClass('far fa-circle');
$('#save_btn').removeClass("disabled");
},1000);
}
} else {
$('#save_btn .icon i').removeClass('fas fa-circle-notch fa-spin').addClass('fas fa-times');
$('#save_btn').removeClass('btn-success').addClass('btn-danger');
setTimeout(function () {
$('#save_btn .icon i').removeClass('fas fa-times').addClass('far fa-circle');
$('#save_btn').removeClass('btn-danger').addClass('btn-success');
$('#save_btn').removeClass("disabled");
},1000);
}
},
error: function() {
$('#save_btn .icon i').removeClass('fas fa-circle-notch fa-spin').addClass('fas fa-times');
$('#save_btn').removeClass('btn-success').addClass('btn-danger');
setTimeout(function () {
$('#save_btn .icon i').removeClass('fas fa-times').addClass('far fa-circle');
$('#save_btn').removeClass('btn-danger').addClass('btn-success');
$('#save_btn').removeClass("disabled");
},1000);
}
});
}
}
window.save_marker_pos = function(id_marker,yaw,pitch,rotateX,rotateZ,size_scale,scale,embed_coords,embed_size,embed_params,zIndex,visible_multiview_ids) {
$.ajax({
url: "ajax/save_marker_pos.php",
type: "POST",
data: {
id: id_marker,
yaw: yaw,
pitch: pitch,
rotateX: rotateX,
rotateZ: rotateZ,
size_scale: size_scale,
scale: scale,
embed_coords: embed_coords,
embed_size: embed_size,
embed_params: embed_params,
zIndex: zIndex,
visible_multiview_ids: visible_multiview_ids
},
async: true
});
}
window.save_marker_style = function(id_marker,show_room,color,background,icon,id_icon_library,tooltip_type,tooltip_text,css_class,embed_content,animation,icon_type,tooltip_visibility,tooltip_background,tooltip_color,sound,array_lang) {
var array_lang_json = JSON.stringify(array_lang);
$.ajax({
url: "ajax/save_marker_style.php",
type: "POST",
data: {
id: id_marker,
show_room: show_room,
color: color,
background: background,
icon: icon,
id_icon_library: id_icon_library,
tooltip_type: tooltip_type,
tooltip_visibility: tooltip_visibility,
tooltip_background: tooltip_background,
tooltip_color: tooltip_color,
tooltip_text: tooltip_text,
css_class: css_class,
embed_content: embed_content,
animation: animation,
icon_type: icon_type,
sound: sound,
array_lang: array_lang_json
},
async: false
});
}
window.save_measure = function(measure) {
$.ajax({
url: "ajax/save_measure.php",
type: "POST",
data: {
measure: measure
},
async: true
});
}
window.save_poi_pos = function(id_poi,yaw,pitch,rotateX,rotateZ,size_scale,embed_coords,embed_size,transform3d,scale,zindex,params,embed_params,visible_multiview_ids) {
$.ajax({
url: "ajax/save_poi_pos.php",
type: "POST",
data: {
id: id_poi,
yaw: yaw,
pitch: pitch,
rotateX: rotateX,
rotateZ: rotateZ,
size_scale: size_scale,
embed_coords: embed_coords,
embed_size: embed_size,
transform3d: transform3d,
scale: scale,
zindex: zindex,
params: params,
embed_params: embed_params,
visible_multiview_ids: visible_multiview_ids
},
async: true
});
}
window.save_poi_style = function(id_poi,color,background,icon,style,id_icon_library,label,tooltip_type,tooltip_text,css_class,embed_content,embed_video_autoplay,embed_video_loop,embed_video_muted,embed_gallery_autoplay,embed_type,animation,icon_type,embed_params,tooltip_visibility,tooltip_background,tooltip_color,sound,array_lang) {
if(embed_type=='gallery') embed_content='';
var array_lang_json = JSON.stringify(array_lang);
$.ajax({
url: "ajax/save_poi_style.php",
type: "POST",
data: {
id: id_poi,
color: color,
background: background,
icon: icon,
label: label,
style: style,
id_icon_library: id_icon_library,
tooltip_type: tooltip_type,
tooltip_visibility: tooltip_visibility,
tooltip_background: tooltip_background,
tooltip_color: tooltip_color,
tooltip_text: tooltip_text,
css_class: css_class,
embed_content: embed_content,
embed_video_autoplay: embed_video_autoplay,
embed_video_loop: embed_video_loop,
embed_video_muted: embed_video_muted,
embed_gallery_autoplay: embed_gallery_autoplay,
animation: animation,
icon_type: icon_type,
embed_params: embed_params,
sound: sound,
array_lang: array_lang_json
},
async: false
});
}
window.save_poi_schedule = function(id_poi,schedule) {
$.ajax({
url: "ajax/save_poi_schedule.php",
type: "POST",
data: {
id: id_poi,
schedule: schedule
},
async: true
});
}
window.save_poi_edit = function(id_poi,type,content,title,description,target,view_type,box_pos,box_max_width,box_maximize,song_bg_volume,params,auto_close,box_background,box_color) {
$.ajax({
url: "ajax/save_poi_edit.php",
type: "POST",
data: {
id: id_poi,
type: type,
content: content,
title: title,
description: description,
target: target,
id_room: window.id_room_sel,
id_poi_autoopen: window.id_poi_autoopen,
view_type: view_type,
box_pos: box_pos,
box_max_width: box_max_width,
box_maximize: box_maximize,
box_background: box_background,
box_color: box_color,
song_bg_volume: song_bg_volume,
params: params,
auto_close: auto_close
},
async: false
});
}
window.save_marker_edit = function(id_marker,id_room_target,yaw,pitch,lookat) {
$.ajax({
url: "ajax/save_marker_edit.php",
type: "POST",
data: {
id: id_marker,
id_room_target: id_room_target,
yaw: yaw,
pitch: pitch,
lookat: lookat
},
async: false
});
}
window.new_marker = function(id_room,image,id_room_target=0) {
if(id_room_target==0) {
id_room_target = $('#room_target_add option:selected').attr('id');
}
if($('#override_pos_add').is(':checked')) {
var yaw_m = parseFloat(window.viewer_pos.getYaw());
var pitch_m = parseFloat(window.viewer_pos.getPitch());
} else {
var yaw_m = '';
var pitch_m = '';
}
$('#modal_add_marker button').prop("disabled",true);
try {
var yaw = parseFloat(window.viewer.getYaw());
var pitch = parseFloat(window.viewer.getPitch());
} catch (e) {
var yaw = 0;
var pitch = 0;
}
var lookat = $('#lookat_add option:selected').attr('id');
if($('#modal_add_marker').is(':visible')) {
var backlink = $('#backlink_marker').is(':checked');
if(backlink) backlink=1; else backlink=0;
if(backlink==1) {
var yaw_m = parseFloat(window.viewer_pos.getYaw());
var pitch_m = parseFloat(window.viewer_pos.getPitch());
}
} else {
var backlink = 0;
}
window.currentYaw = yaw;
window.currentPitch = pitch;
$.ajax({
url: "ajax/add_marker.php",
type: "POST",
data: {
id_virtualtour: window.id_virtualtour,
id_room: id_room,
id_room_target: id_room_target,
yaw: yaw,
pitch: pitch,
yaw_m: yaw_m,
pitch_m: pitch_m,
embed_type: window.embed_type_sel,
lookat: lookat,
backlink: backlink
},
async: true,
success: function (json) {
var rsp = JSON.parse(json);
if(rsp.status=="ok") {
$('#modal_add_marker').modal("hide");
$('#modal_add_marker button').prop("disabled", false);
var count_marker = parseInt($('#count_marker_'+id_room).html());
count_marker = count_marker + 1;
$('#count_marker_'+id_room).html(count_marker);
if(backlink) {
var count_marker = parseInt($('#count_marker_'+id_room_target).html());
count_marker = count_marker + 1;
$('#count_marker_'+id_room_target).html(count_marker);
}
select_room_marker(id_room,image,rsp.id);
} else {
$('#modal_add_marker button').prop("disabled", false);
}
}
});
}
window.new_poi = function(type) {
var id_room = window.new_poi_id_room;
var image = window.new_poi_image;
$('#modal_add_poi button').prop("disabled",true);
try {
var yaw = parseFloat(window.viewer.getYaw());
var pitch = parseFloat(window.viewer.getPitch());
} catch (e) {
var yaw = 0;
var pitch = 0;
}
window.currentYaw = yaw;
window.currentPitch = pitch;
if(window.embed_type_sel=='callout') {
window.embed_type_sel='';
type='callout';
}
$.ajax({
url: "ajax/add_poi.php",
type: "POST",
data: {
id_virtualtour: window.id_virtualtour,
id_room: id_room,
yaw: yaw,
pitch: pitch,
type: type,
embed_type: window.embed_type_sel
},
async: true,
success: function (json) {
var rsp = JSON.parse(json);
if(rsp.status=="ok") {
$('#modal_add_poi').modal("hide");
$('#modal_add_poi button').prop("disabled", false);
var count_poi = parseInt($('#count_poi_'+id_room).html());
count_poi = count_poi + 1;
$('#count_poi_'+id_room).html(count_poi);
select_room_poi(id_room,image,rsp.id);
} else {
$('#modal_add_poi button').prop("disabled", false);
}
}
});
}
window.add_measure = function(id_room,image) {
$('#btn_add_measure').prop('disabled',true);
try {
var yaw = parseFloat(window.viewer.getYaw());
var pitch = parseFloat(window.viewer.getPitch());
} catch (e) {
var yaw = 0;
var pitch = 0;
}
window.currentYaw = yaw;
window.currentPitch = pitch;
$.ajax({
url: "ajax/add_measure.php",
type: "POST",
data: {
id_virtualtour: window.id_virtualtour,
id_room: id_room,
yaw: yaw,
pitch: pitch
},
async: true,
success: function (json) {
var rsp = JSON.parse(json);
if(rsp.status=="ok") {
var count_measure = parseInt($('#count_measures_'+id_room).html());
count_measure = count_measure + 1;
$('#count_measures_'+id_room).html(count_measure);
select_room_measure(id_room,image,rsp.id);
}
$('#btn_add_measure').prop('disabled',false);
}
});
}
window.move_to_local = function(id_vt) {
var html_btn = $('#btn_move_to_local').html();
$('#btn_move_to_local').html("<i class='fas fa-circle-notch fa-spin'></i>");
$('#modal_move_to_local button').addClass('disabled');
$.ajax({
url: "../services/move_vt_to_local.php",
type: "POST",
data: {
id_virtualtour: id_vt
},
async: true,
success: function (json) {
var rsp = JSON.parse(json);
if(rsp.status=="ok") {
$('#btn_move_to_local').html("<i class='fas fa-check'></i>");
location.reload();
} else {
$('#modal_move_to_local button').removeClass('disabled');
$('#btn_move_to_local').html(html_btn);
alert(rsp.msg);
}
}
});
}
window.move_to_s3 = function(id_vt) {
var html_btn = $('#btn_move_to_s3').html();
$('#btn_move_to_s3').html("<i class='fas fa-circle-notch fa-spin'></i>");
$('#modal_move_to_s3 button').addClass('disabled');
$.ajax({
url: "../services/move_vt_to_s3.php",
type: "POST",
data: {
id_virtualtour: id_vt
},
async: true,
success: function (json) {
var rsp = JSON.parse(json);
if(rsp.status=="ok") {
$('#btn_move_to_s3').html("<i class='fas fa-check'></i>");
location.reload();
} else {
$('#modal_move_to_s3 button').removeClass('disabled');
$('#btn_move_to_s3').html(html_btn);
alert(rsp.msg);
}
}
});
}
window.modal_delete_map = function(id) {
var name_map = $('#map_name_'+id+' span').html();
$('#name_map_delete').html(name_map);
$('#btn_delete_map').attr('onclick','delete_map('+id+');');
$('#modal_delete_map').modal("show");
}
window.modal_delete_virtualtour = function(id) {
var name_vt = $('#vt_name_'+id).html();
$('#name_vt_delete').html(name_vt);
$('#btn_delete_virtualtour').attr('onclick','delete_virtualtour('+id+');');
$('#modal_delete_virtualtour').modal("show");
}
window.modal_move_to_s3 = function(id) {
var name_vt = $('#vt_name_'+id).html();
$('#name_vt_move_to_s3').html(name_vt);
$('#btn_move_to_s3').attr('onclick','move_to_s3('+id+');');
$('#modal_move_to_s3').modal("show");
}
window.modal_move_to_local = function(id) {
var name_vt = $('#vt_name_'+id).html();
$('#name_vt_move_to_local').html(name_vt);
$('#btn_move_to_local').attr('onclick','move_to_local('+id+');');
$('#modal_move_to_local').modal("show");
}
window.modal_duplicate_virtualtour = function(id) {
var name_vt = $('#vt_name_'+id).html();
$('#name_vt_duplicate').html(name_vt);
$('#btn_duplicate_virtualtour').attr('onclick','duplicate_virtualtour('+id+');');
$('#modal_duplicate_virtualtour').modal("show");
}
window.modal_export_virtualtour = function(id) {
var name_vt = $('#vt_name_'+id).html();
$('#name_vt_download').html(name_vt);
$('#btn_export_virtualtour').attr('onclick','export_virtualtour('+id+');');
$('#btn_export_virtualtour_vr').attr('onclick','export_virtualtour_vr('+id+');');
$('#btn_export_virtualtour_b').attr('onclick','export_virtualtour_b('+id+');');
$('#modal_export_virtualtour').modal("show");
}
window.modal_duplicate_room = function(id) {
$('#btn_duplicate_room').attr('onclick','duplicate_room('+id+');');
$('#modal_duplicate_room').modal("show");
}
window.modal_delete_room = function(id) {
var name_room = $('#room_name_'+id).html();
$('#name_room_delete').html(name_room);
$('#btn_delete_room').attr('onclick','delete_room('+id+',false);');
$('#modal_delete_room').modal("show");
}
window.modal_delete_marker = function(id,id_room,image) {
$('#btn_delete_marker').attr('onclick','delete_marker('+id+','+id_room+',\''+image+'\')');
$('#modal_delete_marker').modal("show");
}
window.modal_delete_poi = function(id,id_room,image) {
$('#btn_delete_poi').attr('onclick','delete_poi('+id+','+id_room+',\''+image+'\')');
$('#modal_delete_poi').modal("show");
}
window.modal_delete_measure = function(id,id_room,image) {
$('#btn_delete_measure').attr('onclick','delete_measure('+id+','+id_room+',\''+image+'\')');
$('#modal_delete_measure').modal("show");
}
window.modal_duplicate_poi = function(id,id_room) {
get_option_rooms_duplicate('room_target',id_room);
$('#btn_duplicate_poi').attr('onclick','duplicate_poi('+id+')');
$('#modal_edit_poi').modal('hide');
$('#modal_duplicate_poi').modal("show");
}
window.modal_delete_map_point = function(id) {
$('#btn_delete_map_point').attr('onclick','delete_map_point('+id+');');
$('#modal_delete_map_point').modal("show");
}
window.modal_delete_globe_point = function(id) {
$('#btn_delete_globe_point').attr('onclick','delete_globe_point('+id+');');
$('#modal_delete_globe_point').modal("show");
}
window.delete_virtualtour = function (id) {
$('#modal_delete_virtualtour button').addClass("disabled");
$.ajax({
url: "ajax/delete_virtual_tour.php",
type: "POST",
data: {
id_virtualtour: id
},
async: true,
success: function (json) {
var rsp = JSON.parse(json);
if (rsp.status == "ok") {
$('#modal_delete_virtualtour button').removeClass("disabled");
$('#modal_delete_virtualtour').modal("hide");
location.reload();
} else {
$('#modal_delete_virtualtour button').removeClass("disabled");
}
}
});
};
window.import_tour = function (file_name) {
$('#modal_import_tour .modal-footer .btn').addClass('disabled');
var btn_html = $('#btn_import_tour').html();
$('#btn_import_tour').html('<i class="fas fa-circle-notch fa-spin"></i>');
$.ajax({
url: "../services/import_backend_vt.php",
type: "POST",
timeout: 300000,
async: true,
data: {
file_name: file_name
},
success: function (json) {
var rsp = JSON.parse(json);
if(rsp.status=='ok') {
$('#modal_import_tour').modal('hide');
location.reload();
} else {
$('#btn_import_tour').html(btn_html);
$('#modal_import_tour .modal-footer .btn').removeClass('disabled');
alert(rsp.msg);
}
},
error: function () {
$('#btn_import_tour').html(btn_html);
$('#modal_import_tour .modal-footer .btn').removeClass('disabled');
}
});
}
window.create_sample_tour = function () {
$('#modal_sample_tour button').addClass("disabled");
$('#btn_create_sample_tour').html('<i class="fas fa-circle-notch fa-spin"></i>');
var name = $('#name').val();
var author = $('#author').val();
$.ajax({
url: "../services/create_sample_tour.php",
type: "POST",
timeout: 300000,
async: true,
data: {
name: name,
author: author
},
success: function (json) {
var rsp = JSON.parse(json);
$('#modal_sample_tour button').removeClass("disabled");
$('#modal_sample_tour').modal("hide");
$.ajax({
url: "ajax/send_email.php",
type: "POST",
data: {
type: 'vt_create',
id_user: id_user,
id_vt: rsp.id
},
timeout: 15000,
async: true,
success: function () {}
});
if(window.create_and_edit) {
if (rsp.id != "") {
location.href="index.php?p=edit_virtual_tour&id="+rsp.id;
} else {
location.reload();
}
} else {
location.reload();
}
}
});
}
window.change_vt_type = function () {
var vt_type = $('#vt_type option:selected').attr("id");
switch(vt_type) {
case '0':
$('#sample_data').removeClass("disabled");
break;
case '1':
case '2':
$('#sample_data').addClass("disabled");
break;
}
}
window.duplicate_virtualtour = function (id) {
$('#modal_duplicate_virtualtour button').addClass("disabled");
var html_btn = $('#btn_duplicate_virtualtour').html();
$('#btn_duplicate_virtualtour').html('<i class="fas fa-circle-notch fa-spin"></i>');
var duplicate_info_box = $('#duplicate_info_box').is(':checked')?1:0;
var duplicate_maps = $('#duplicate_maps').is(':checked')?1:0;
var duplicate_gallery = $('#duplicate_gallery').is(':checked')?1:0;
var duplicate_presentation = $('#duplicate_presentation').is(':checked')?1:0;
var duplicate_rooms = $('#duplicate_rooms').is(':checked')?1:0;
var duplicate_markers = $('#duplicate_markers').is(':checked')?1:0;
var duplicate_pois = $('#duplicate_pois').is(':checked')?1:0;
var duplicate_products = $('#duplicate_products').is(':checked')?1:0;
$.ajax({
url: "ajax/duplicate_virtual_tour.php",
type: "POST",
timeout: 300000,
data: {
id_user: window.id_user,
id_virtualtour: id,
duplicate_info_box: duplicate_info_box,
duplicate_maps: duplicate_maps,
duplicate_gallery: duplicate_gallery,
duplicate_presentation: duplicate_presentation,
duplicate_rooms: duplicate_rooms,
duplicate_markers: duplicate_markers,
duplicate_pois: duplicate_pois,
duplicate_products: duplicate_products
},
async: true,
success: function (json) {
var rsp = JSON.parse(json);
if (rsp.status == "ok") {
$.ajax({
url: "ajax/send_email.php",
type: "POST",
data: {
type: 'vt_create',
id_user: window.id_user,
id_vt: rsp.id
},
timeout: 15000,
async: true,
success: function () {}
});
$('#modal_duplicate_virtualtour button').removeClass("disabled");
$('#modal_duplicate_virtualtour').modal("hide");
location.reload();
} else {
$('#btn_duplicate_virtualtour').html(html_btn);
$('#modal_duplicate_virtualtour button').removeClass("disabled");
}
}
});
};
window.export_virtualtour = function (id) {
$('#modal_export_virtualtour button').addClass("disabled");
var html_btn = $('#btn_export_virtualtour').html();
$('#btn_export_virtualtour').html('<i class="fas fa-circle-notch fa-spin"></i>');
$.ajax({
url: "../services/export_vt.php",
type: "POST",
timeout: 300000,
data: {
id_virtualtour: id
},
async: true,
success: function (json) {
$('#btn_export_virtualtour').html(html_btn);
$('#modal_export_virtualtour button').removeClass("disabled");
var rsp = JSON.parse(json);
if (rsp.status == "ok") {
$('#modal_export_virtualtour').modal("hide");
var zip = rsp.zip;
var url="../services/export_tmp/"+zip;
window.open(url, '_self');
}
},
error: function () {
$('#btn_export_virtualtour').html(html_btn);
$('#modal_export_virtualtour button').removeClass("disabled");
}
});
};
window.export_virtualtour_vr = function (id) {
$('#modal_export_virtualtour button').addClass("disabled");
var html_btn = $('#btn_export_virtualtour_vr').html();
$('#btn_export_virtualtour_vr').html('<i class="fas fa-circle-notch fa-spin"></i>');
$.ajax({
url: "../services/export_vt_vr.php",
type: "POST",
timeout: 300000,
data: {
id_virtualtour: id
},
async: true,
success: function (json) {
$('#btn_export_virtualtour_vr').html(html_btn);
$('#modal_export_virtualtour button').removeClass("disabled");
var rsp = JSON.parse(json);
if (rsp.status == "ok") {
$('#modal_export_virtualtour').modal("hide");
var zip = rsp.zip;
var url="../services/export_tmp/"+zip;
window.open(url, '_self');
}
},
error: function () {
$('#btn_export_virtualtour_vr').html(html_btn);
$('#modal_export_virtualtour button').removeClass("disabled");
}
});
};
window.export_virtualtour_b = function (id) {
$('#modal_export_virtualtour button').addClass("disabled");
var html_btn = $('#btn_export_virtualtour_b').html();
$('#btn_export_virtualtour_b').html('<i class="fas fa-circle-notch fa-spin"></i>');
$.ajax({
url: "../services/export_backend_vt.php",
type: "POST",
timeout: 300000,
data: {
id_virtualtour: id
},
async: true,
success: function (json) {
$('#btn_export_virtualtour_b').html(html_btn);
$('#modal_export_virtualtour button').removeClass("disabled");
var rsp = JSON.parse(json);
if (rsp.status == "ok") {
$('#modal_export_virtualtour').modal("hide");
var zip = rsp.zip;
var url="../services/export_tmp/"+zip;
window.open(url, '_self');
}
},
error: function () {
$('#btn_export_virtualtour_b').html(html_btn);
$('#modal_export_virtualtour button').removeClass("disabled");
}
});
};
window.duplicate_room = function (id) {
$('#modal_duplicate_room button').addClass("disabled");
var html_btn = $('#btn_duplicate_room').html();
$('#btn_duplicate_room').html('<i class="fas fa-circle-notch fa-spin"></i>');
var duplicate_pois = $('#duplicate_pois').is(':checked')?1:0;
var duplicate_target_vt = $('#duplicate_target_vt option:selected').attr('id');
$.ajax({
url: "ajax/duplicate_room.php",
type: "POST",
timeout: 300000,
data: {
id_room: id,
duplicate_pois: duplicate_pois,
duplicate_target_vt: duplicate_target_vt
},
async: true,
success: function (json) {
var rsp = JSON.parse(json);
if (rsp.status == "ok") {
$('#modal_duplicate_room button').removeClass("disabled");
$('#modal_duplicate_room').modal("hide");
location.reload();
} else {
$('#btn_duplicate_room').html(html_btn);
$('#modal_duplicate_room button').removeClass("disabled");
}
}
});
};
window.delete_room = function (id,inside) {
$('#modal_delete_room button').addClass("disabled");
$.ajax({
url: "ajax/delete_room.php",
type: "POST",
data: {
id_user: window.id_user,
id_room: id
},
async: true,
success: function (json) {
var rsp = JSON.parse(json);
if (rsp.status == "ok") {
$('#modal_delete_room button').removeClass("disabled");
$('#modal_delete_room').modal("hide");
if(inside) {
location.href = 'index.php?p=rooms';
} else {
location.reload();
}
} else {
$('#modal_delete_room button').removeClass("disabled");
}
}
});
};
window.delete_marker = function (id,id_room,image) {
$('#modal_delete_marker button').addClass("disabled");
$.ajax({
url: "ajax/delete_marker.php",
type: "POST",
data: {
id_marker: id
},
async: true,
success: function (json) {
var rsp = JSON.parse(json);
if (rsp.status == "ok") {
$('#modal_delete_marker button').removeClass("disabled");
$('#modal_delete_marker').modal("hide");
var count_marker = parseInt($('#count_marker_'+id_room).html());
count_marker = count_marker - 1;
$('#count_marker_'+id_room).html(count_marker);
try {
var yaw = parseFloat(window.viewer.getYaw());
var pitch = parseFloat(window.viewer.getPitch());
} catch (e) {
var yaw = 0;
var pitch = 0;
}
window.currentYaw = yaw;
window.currentPitch = pitch;
select_room_marker(id_room,image,null);
} else {
$('#modal_delete_marker button').removeClass("disabled");
}
}
});
};
window.duplicate_poi = function (id) {
$('#modal_duplicate_poi button').addClass("disabled");
var id_room_target = $('#room_target option:selected').attr('id');
var image = $('#room_target option:selected').attr('data-image');
$.ajax({
url: "ajax/duplicate_poi.php",
type: "POST",
data: {
id_poi: id,
id_room_target: id_room_target
},
async: true,
success: function (json) {
var rsp = JSON.parse(json);
if (rsp.status == "ok") {
$('#modal_duplicate_poi button').removeClass("disabled");
$('#modal_duplicate_poi').modal("hide");
var count_poi = parseInt($('#count_poi_'+id_room_target).html());
count_poi = count_poi + 1;
$('#count_poi_'+id_room_target).html(count_poi);
try {
var yaw = parseFloat(window.viewer.getYaw());
var pitch = parseFloat(window.viewer.getPitch());
} catch (e) {
var yaw = 0;
var pitch = 0;
}
window.currentYaw = yaw;
window.currentPitch = pitch;
select_room_poi(id_room_target,image,rsp.id);
} else {
$('#modal_duplicate_poi button').removeClass("disabled");
}
}
});
}
window.delete_poi = function (id,id_room,image) {
$('#modal_delete_poi button').addClass("disabled");
$.ajax({
url: "ajax/delete_poi.php",
type: "POST",
data: {
id_poi: id
},
async: true,
success: function (json) {
var rsp = JSON.parse(json);
if (rsp.status == "ok") {
$('#modal_delete_poi button').removeClass("disabled");
$('#modal_delete_poi').modal("hide");
var count_poi = parseInt($('#count_poi_'+id_room).html());
count_poi = count_poi - 1;
$('#count_poi_'+id_room).html(count_poi);
try {
var yaw = parseFloat(window.viewer.getYaw());
var pitch = parseFloat(window.viewer.getPitch());
} catch (e) {
var yaw = 0;
var pitch = 0;
}
window.currentYaw = yaw;
window.currentPitch = pitch;
select_room_poi(id_room,image,null);
} else {
$('#modal_delete_poi button').removeClass("disabled");
}
}
});
};
window.delete_measure = function (id,id_room,image) {
$('#modal_delete_measure button').addClass("disabled");
$.ajax({
url: "ajax/delete_measure.php",
type: "POST",
data: {
id_measure: id
},
async: true,
success: function (json) {
var rsp = JSON.parse(json);
if (rsp.status == "ok") {
$('#modal_delete_measure button').removeClass("disabled");
$('#modal_delete_measure').modal("hide");
var count_measure = parseInt($('#count_measures_'+id_room).html());
count_measure = count_measure - 1;
$('#count_measures_'+id_room).html(count_measure);
try {
var yaw = parseFloat(window.viewer.getYaw());
var pitch = parseFloat(window.viewer.getPitch());
} catch (e) {
var yaw = 0;
var pitch = 0;
}
window.currentYaw = yaw;
window.currentPitch = pitch;
select_room_measure(id_room,image,null);
} else {
$('#modal_delete_measure button').removeClass("disabled");
}
}
});
};
window.delete_map_point = function (id) {
$('#modal_delete_map_point button').addClass("disabled");
$.ajax({
url: "ajax/delete_map_point.php",
type: "POST",
data: {
id_room: id,
map_type: window.map_type
},
async: true,
success: function (json) {
var rsp = JSON.parse(json);
if (rsp.status == "ok") {
$('#modal_delete_map_point button').removeClass("disabled");
$('#modal_delete_map_point').modal("hide");
sessionStorage.setItem('add_point','1');
window.id_room_point_sel = '';
window.id_room_sel = '';
save_map_settings(true);
} else {
$('#modal_delete_map_point button').removeClass("disabled");
}
}
});
};
window.delete_globe_point = function (id) {
$('#modal_delete_globe_point button').addClass("disabled");
$.ajax({
url: "ajax/delete_globe_point.php",
type: "POST",
data: {
id_vt: id,
id_globe: id_globe
},
async: true,
success: function (json) {
var rsp = JSON.parse(json);
if (rsp.status == "ok") {
$('#modal_delete_globe_point button').removeClass("disabled");
$('#modal_delete_globe_point').modal("hide");
sessionStorage.setItem('add_point','1');
window.id_vt_point_sel = '';
window.id_vt_sel = '';
save_globe(window.id_globe,true);
} else {
$('#modal_delete_globe_point button').removeClass("disabled");
}
}
});
};
window.delete_map = function (id_map) {
$('#modal_delete_map button').addClass("disabled");
$.ajax({
url: "ajax/delete_map.php",
type: "POST",
data: {
id_virtualtour: window.id_virtualtour,
id_map: id_map
},
async: true,
success: function (json) {
var rsp = JSON.parse(json);
if (rsp.status == "ok") {
$('#modal_delete_map button').removeClass("disabled");
$('#modal_delete_map').modal("hide");
location.reload();
} else {
$('#modal_delete_map button').removeClass("disabled");
}
}
});
};
window.change_exist_logo = function() {
var logo = $('#exist_logo option:selected').attr('id');
if(logo==0) {
window.logo = '';
window.vt_need_save = true;
$('#div_delete_logo').hide();
$('#div_image_logo').hide();
$('#div_upload_logo').show();
$('#div_exist_logo').show();
$('#div_link_logo').hide();
$('#div_image_logo img').attr('src','');
} else {
window.logo = logo;
window.vt_need_save = true;
$('#div_delete_logo').hide();
$('#div_image_logo').show();
$('#div_upload_logo').hide();
$('#div_exist_logo').show();
$('#div_link_logo').show();
if(window.s3_enabled==1) {
$('#div_image_logo img').attr('src',window.s3_url+'viewer/content/'+logo);
} else {
$('#div_image_logo img').attr('src','../viewer/content/'+logo);
}
}
}
window.change_poweredby_type = function() {
var poweredby_type = $('#poweredby_type option:selected').attr('id');
switch(poweredby_type) {
case 'image':
$('#poweredby_type_text').hide();
$('#poweredby_type_image').show();
break;
case 'text':
$('#poweredby_type_text').show();
$('#poweredby_type_image').hide();
break;
}
}
window.change_exist_poweredby = function() {
var poweredby = $('#exist_poweredby option:selected').attr('id');
if(poweredby==0) {
window.poweredby_image = '';
window.vt_need_save = true;
$('#div_delete_poweredby').hide();
$('#div_image_poweredby').hide();
$('#div_upload_poweredby').show();
$('#div_exist_poweredby').show();
$('#div_link_poweredby').hide();
$('#div_image_poweredby img').attr('src','');
} else {
window.poweredby_image = poweredby;
window.vt_need_save = true;
$('#div_delete_poweredby').hide();
$('#div_image_poweredby').show();
$('#div_upload_poweredby').hide();
$('#div_exist_poweredby').show();
$('#div_link_poweredby').show();
if(window.s3_enabled==1) {
$('#div_image_poweredby img').attr('src',window.s3_url+'viewer/content/'+poweredby);
} else {
$('#div_image_poweredby img').attr('src','../viewer/content/'+poweredby);
}
}
}
window.change_exist_introd = function() {
var introd = $('#exist_introd option:selected').attr('id');
if(introd==0) {
window.intro_desktop = '';
window.vt_need_save = true;
$('#div_delete_introd').hide();
$('#div_image_introd').hide();
$('#div_upload_introd').show();
$('#div_exist_introd').show();
$('#div_hide_introd').hide();
$('#div_image_introd img').attr('src','');
} else {
window.intro_desktop = introd;
window.vt_need_save = true;
$('#div_delete_introd').hide();
$('#div_image_introd').show();
$('#div_upload_introd').hide();
$('#div_exist_introd').show();
$('#div_hide_introd').show();
if(window.s3_enabled==1) {
$('#div_image_introd img').attr('src',window.s3_url+'viewer/content/'+introd);
} else {
$('#div_image_introd img').attr('src','../viewer/content/'+introd);
}
}
}
window.change_exist_introm = function() {
var introm = $('#exist_introm option:selected').attr('id');
if(introm==0) {
window.intro_mobile = '';
window.vt_need_save = true;
$('#div_delete_introm').hide();
$('#div_image_introm').hide();
$('#div_upload_introm').show();
$('#div_exist_introm').show();
$('#div_hide_introm').hide();
$('#div_image_introm img').attr('src','');
} else {
window.intro_mobile = introm;
window.vt_need_save = true;
$('#div_delete_introm').hide();
$('#div_image_introm').show();
$('#div_upload_introm').hide();
$('#div_exist_introm').show();
$('#div_hide_introm').show();
if(window.s3_enabled==1) {
$('#div_image_introm img').attr('src',window.s3_url+'viewer/content/'+introm);
} else {
$('#div_image_introm img').attr('src','../viewer/content/'+introm);
}
}
}
window.change_exist_bg = function() {
var logo = $('#exist_bg option:selected').attr('id');
if(logo==0) {
window.background_image = '';
window.vt_need_save = true;
$('#div_delete_bg').hide();
$('#div_image_bg').hide();
$('#div_upload_bg').show();
$('#div_exist_bg').show();
$('#div_image_bg img').attr('src','');
} else {
window.background_image = logo;
window.vt_need_save = true;
$('#div_delete_bg').hide();
$('#div_image_bg').show();
$('#div_upload_bg').hide();
$('#div_exist_bg').show();
if(window.s3_enabled==1) {
$('#div_image_bg img').attr('src',window.s3_url+'viewer/content/'+logo);
} else {
$('#div_image_bg img').attr('src','../viewer/content/'+logo);
}
}
}
window.change_exist_bg_m = function() {
var logo = $('#exist_bg_m option:selected').attr('id');
if(logo==0) {
window.background_image_mobile = '';
window.vt_need_save = true;
$('#div_delete_bg_m').hide();
$('#div_image_bg_m').hide();
$('#div_upload_bg_m').show();
$('#div_exist_bg_m').show();
$('#div_image_bg_m img').attr('src','');
} else {
window.background_image_mobile = logo;
window.vt_need_save = true;
$('#div_delete_bg_m').hide();
$('#div_image_bg_m').show();
$('#div_upload_bg_m').hide();
$('#div_exist_bg_m').show();
if(window.s3_enabled==1) {
$('#div_image_bg_m img').attr('src',window.s3_url+'viewer/content/'+logo);
} else {
$('#div_image_bg_m img').attr('src','../viewer/content/'+logo);
}
}
}
window.change_exist_video_bg = function() {
var video = $('#exist_video_bg option:selected').attr('id');
if(video==0) {
window.background_video = '';
window.vt_need_save = true;
$('#div_delete_video_bg').hide();
$('#div_video_bg').hide();
$('#div_video_params').hide();
$('#div_upload_video_bg').show();
$('#div_exist_video_bg').show();
$('#div_video_bg video source').attr('src','');
$('#div_video_bg video').get(0).load();
$('#background_video_delay').prop('disabled',true);
} else {
window.background_video = video;
window.vt_need_save = true;
$('#div_delete_video_bg').hide();
$('#div_video_bg').show();
$('#div_video_params').show();
$('#div_upload_video_bg').hide();
$('#div_exist_video_bg').show();
if(window.s3_enabled==1) {
$('#div_video_bg video source').attr('src',window.s3_url+'viewer/content/'+video+'#t=2');
} else {
$('#div_video_bg video source').attr('src','../viewer/content/'+video+'#t=2');
}
$('#div_video_bg video').get(0).load();
$('#background_video_delay').prop('disabled',false);
}
}
window.change_exist_video_bg_m = function() {
var video = $('#exist_video_bg_m option:selected').attr('id');
if(video==0) {
window.background_video_mobile = '';
window.vt_need_save = true;
$('#div_delete_video_bg_m').hide();
$('#div_video_bg_m').hide();
$('#div_video_m_params').hide();
$('#div_upload_video_bg_m').show();
$('#div_exist_video_bg_m').show();
$('#div_video_bg_m video source').attr('src','');
$('#div_video_bg_m video').get(0).load();
$('#background_video_delay_m').prop('disabled',true);
} else {
window.background_video_mobile = video;
window.vt_need_save = true;
$('#div_delete_video_bg_m').hide();
$('#div_video_bg_m').show();
$('#div_video_m_params').show();
$('#div_upload_video_bg_m').hide();
$('#div_exist_video_bg_m').show();
if(window.s3_enabled==1) {
$('#div_video_bg_m video source').attr('src',window.s3_url+'viewer/content/'+video+'#t=2');
} else {
$('#div_video_bg_m video source').attr('src','../viewer/content/'+video+'#t=2');
}
$('#div_video_bg_m video').get(0).load();
$('#background_video_delay_m').prop('disabled',false);
}
}
window.change_exist_nadir_logo = function() {
var logo = $('#exist_nadir_logo option:selected').attr('id');
if(logo==0) {
window.nadir_logo = '';
window.vt_need_save = true;
$('#div_delete_nadir_logo').hide();
$('#div_image_nadir_logo').hide();
$('#div_upload_nadir_logo').show();
$('#div_exist_nadir_logo').show();
$('#div_size_nadir_logo').hide();
$('#div_image_nadir_logo img').attr('src','');
} else {
window.nadir_logo = logo;
window.vt_need_save = true;
$('#div_delete_nadir_logo').hide();
$('#div_image_nadir_logo').show();
$('#div_upload_nadir_logo').hide();
$('#div_exist_nadir_logo').show();
$('#div_size_nadir_logo').show();
if(window.s3_enabled==1) {
$('#div_image_nadir_logo img').attr('src',window.s3_url+'viewer/content/'+logo);
} else {
$('#div_image_nadir_logo img').attr('src','../viewer/content/'+logo);
}
}
}
window.change_exist_song = function() {
var song = $('#exist_song option:selected').attr('id');
if(song==0) {
window.song = '';
window.vt_need_save = true;
$('#div_delete_song').hide();
$('#div_player_song').hide();
$('#div_upload_song').show();
$('#div_exist_song').show();
$('#div_player_song audio').attr('src','');
} else {
window.song = song;
window.vt_need_save = true;
$('#div_delete_song').hide();
$('#div_player_song').show();
$('#div_upload_song').hide();
$('#div_exist_song').show();
if(window.s3_enabled==1) {
$('#div_player_song audio').attr('src',window.s3_url+'viewer/content/'+song);
} else {
$('#div_player_song audio').attr('src','../viewer/content/'+song);
}
}
}
window.change_slideshow_audio = function() {
$('#btn_sync_audio').addClass('disabled');
var song = $('#s_audio option:selected').attr('id');
if(song==0) {
$('#div_player_s_audio').hide();
$('#div_player_s_audio audio').attr('src','');
window.audio_duration = 0;
} else {
$('#div_player_s_audio').show();
if(window.s3_enabled==1) {
var audio_url = window.s3_url+'viewer/content/'+song;
} else {
var audio_url = '../viewer/content/'+song;
}
$('#div_player_s_audio audio').attr('src',audio_url);
getAudioDuration(audio_url, function(length) {
window.audio_duration = length.toFixed(0);
$('#btn_sync_audio').removeClass('disabled');
});
}
}
function getAudioDuration(src, cb) {
var audio = document.createElement('audio');
audio.addEventListener("loadedmetadata", function(){
cb(audio.duration);
});
audio.src = src;
audio.crossOrigin = false;
}
window.delete_song = function() {
window.song = '';
window.vt_need_save = true;
$('#div_delete_song').hide();
$('#div_player_song').hide();
$('#div_upload_song').show();
$('#div_exist_song').show();
$('#div_player_song audio').attr('src','');
}
window.delete_room_song = function() {
window.song = '';
window.room_need_save = true;
$('#div_delete_song').hide();
$('#div_player_song').hide();
$('#div_upload_song').show();
$('#div_exist_song').show();
$('#div_player_song audio').attr('src','');
}
window.delete_logo = function () {
window.logo = '';
window.vt_need_save = true;
$('#div_delete_logo').hide();
$('#div_image_logo').hide();
$('#div_upload_logo').show();
$('#div_exist_logo').show();
$('#div_link_logo').hide();
$('#div_image_logo img').attr('src','');
}
window.delete_poweredby = function () {
window.poweredby_image = '';
window.vt_need_save = true;
$('#div_delete_poweredby').hide();
$('#div_image_poweredby').hide();
$('#div_upload_poweredby').show();
$('#div_exist_poweredby').show();
$('#div_link_poweredby').hide();
$('#div_image_poweredby img').attr('src','');
}
window.delete_introd = function () {
window.intro_desktop = '';
window.vt_need_save = true;
$('#div_delete_introd').hide();
$('#div_image_introd').hide();
$('#div_upload_introd').show();
$('#div_exist_introd').show();
$('#div_hide_introd').hide();
$('#div_image_introd img').attr('src','');
}
window.delete_introm = function () {
window.intro_mobile = '';
window.vt_need_save = true;
$('#div_delete_introm').hide();
$('#div_image_introm').hide();
$('#div_upload_introm').show();
$('#div_exist_introm').show();
$('#div_hide_introm').hide();
$('#div_image_introm img').attr('src','');
}
window.delete_bg = function () {
window.background_image = '';
window.vt_need_save = true;
$('#div_delete_bg').hide();
$('#div_image_bg').hide();
$('#div_upload_bg').show();
$('#div_exist_bg').show();
$('#div_image_bg img').attr('src','');
}
window.delete_bg_m = function () {
window.background_image_mobile = '';
window.vt_need_save = true;
$('#div_delete_bg_m').hide();
$('#div_image_bg_m').hide();
$('#div_upload_bg_m').show();
$('#div_exist_bg_m').show();
$('#div_image_bg_m img').attr('src','');
}
window.delete_video_bg = function () {
window.background_video = '';
window.vt_need_save = true;
$('#div_delete_video_bg').hide();
$('#div_video_bg').hide();
$('#div_video_params').hide();
$('#div_upload_video_bg').show();
$('#div_exist_video_bg').show();
$('#div_video_bg video source').attr('src','');
$('#div_video_bg video').get(0).load();
$('#background_video_delay').prop('disabled',true);
}
window.delete_video_bg_m = function () {
window.background_video_mobile = '';
window.vt_need_save = true;
$('#div_delete_video_bg_m').hide();
$('#div_video_bg_m').hide();
$('#div_video_m_params').hide();
$('#div_upload_video_bg_m').show();
$('#div_exist_video_bg_m').show();
$('#div_video_bg_m video source').attr('src','');
$('#div_video_bg_m video').get(0).load();
$('#background_video_delay_m').prop('disabled',true);
}
window.delete_b_bg = function () {
window.b_background_image = '';
window.settings_need_save = true;
$('#div_delete_bg').hide();
$('#div_image_bg').hide();
$('#div_upload_bg').show();
$('#div_image_bg img').attr('src','');
}
window.delete_b_bg_reg = function () {
window.b_background_reg_image = '';
window.settings_need_save = true;
$('#div_delete_bg_reg').hide();
$('#div_image_bg_reg').hide();
$('#div_upload_bg_reg').show();
$('#div_image_bg_reg img').attr('src','');
}
window.delete_s_banner = function () {
window.s_banner_image = '';
window.showcase_need_save = true;
$('#div_delete_banner').hide();
$('#div_image_banner').hide();
$('#div_upload_banner').show();
$('#div_image_banner img').attr('src','');
}
window.delete_b_logo = function () {
window.b_logo_image = '';
window.settings_need_save = true;
$('#div_delete_logo').hide();
$('#div_image_logo').hide();
$('#div_upload_logo').show();
$('#div_image_logo img').attr('src','');
}
window.delete_watermark_logo = function () {
window.watermark_logo = '';
window.video_need_save = true;
$('#div_delete_logo').hide();
if(window.vt_logo=='') {
$('#div_image_logo').hide();
$('#div_image_logo img').attr('src','');
} else {
if(window.s3_enabled==1) {
$('#div_image_logo img').attr('src',window.s3_url+'viewer/content/'+window.vt_logo);
} else {
$('#div_image_logo img').attr('src','../viewer/content/'+window.vt_logo);
}
}
$('#div_upload_logo').show();
}
window.delete_slide_logo = function () {
$('#div_delete_slide_logo').hide();
if(window.vt_logo=='') {
$('#div_image_slide_logo').hide();
$('#div_image_slide_logo img').attr('src','');
} else {
if(window.s3_enabled==1) {
$('#div_image_slide_logo img').attr('src',window.s3_url+'viewer/content/'+window.vt_logo);
} else {
$('#div_image_slide_logo img').attr('src','../viewer/content/'+window.vt_logo);
}
}
$('#div_upload_slide_logo').show();
}
window.delete_slide_image = function () {
$('#div_delete_slide_image').hide();
$('#div_image_slide_image').hide();
$('#div_image_slide_image img').attr('src','');
$('#div_upload_slide_image').show();
}
window.delete_slide_video = function () {
$('#div_delete_slide_video').hide();
$('#div_image_slide_video').hide();
$('#div_image_slide_video video').attr('src','');
$('#div_upload_slide_video').show();
}
window.delete_room_logo = function () {
window.logo = '';
window.room_need_save = true;
$('#div_delete_logo').hide();
$('#div_image_logo').hide();
$('#div_upload_logo').show();
$('#div_image_logo img').attr('src','');
}
window.delete_b_logo_s = function () {
window.b_logo_s_image = '';
window.settings_need_save = true;
$('#div_delete_logo_s').hide();
$('#div_image_logo_s').hide();
$('#div_upload_logo_s').show();
$('#div_image_logo_s img').attr('src','');
}
window.delete_s_logo = function () {
window.s_logo_image = '';
window.showcase_need_save = true;
$('#div_delete_logo').hide();
$('#div_image_logo').hide();
$('#div_upload_logo').show();
$('#div_image_logo img').attr('src','');
}
window.delete_g_logo = function () {
window.s_logo_image = '';
window.globe_need_save = true;
$('#div_delete_logo').hide();
$('#div_image_logo').hide();
$('#div_upload_logo').show();
$('#div_image_logo img').attr('src','');
}
window.delete_ad_logo = function () {
window.image_advertisement = '';
window.advertisement_need_save = true;
$('#div_delete_logo').hide();
$('#div_image_logo').hide();
$('#div_upload_logo').show();
$('#div_image_logo img').attr('src','');
}
window.delete_ad_video = function () {
window.video_advertisement = '';
window.advertisement_need_save = true;
$('#div_delete_video').hide();
$('#div_video').hide();
$('#div_upload_video').show();
$('#div_video video').attr('src','');
}
window.delete_nadir_logo = function () {
window.nadir_logo = '';
window.vt_need_save = true;
$('#div_delete_nadir_logo').hide();
$('#div_image_nadir_logo').hide();
$('#div_size_nadir_logo').hide();
$('#div_upload_nadir_logo').show();
$('#div_exist_nadir_logo').show();
$('#div_image_nadir_logo img').attr('src','');
}
window.get_rooms_alt_images = function (id_room) {
$.ajax({
url: "ajax/get_rooms_alt_images.php",
type: "POST",
data: {
id_room: id_room
},
async: true,
success: function (json) {
var rsp = JSON.parse(json);
if(rsp.length>0) {
parse_rooms_alt_images(rsp);
$('#virtual_staging').removeClass('disabled');
$('#main_view_tooltip').removeClass('disabled');
$('.input_lang[data-target-id="main_view_tooltip"]').removeClass('disabled');
} else {
var html = '<div data-id="'+window.id_room+'" style="position: relative;" class="image_room_alt float-left mb-2 ml-1 mr-1"><div class="remove_image_room_alt"><i onclick="edit_main_view_tooltip();" style="font-size: 22px;color: white;cursor: pointer" class="fas fa-edit"></i></div><img draggable="false" style="height:90px;border-radius:5px;" src="'+window.panorama_image.replace('/panoramas/','/panoramas/thumb/')+'" /></div>';
$('#list_rooms_alt').html(html);
$('#virtual_staging').addClass('disabled');
$('#main_view_tooltip').addClass('disabled');
$('.input_lang[data-target-id="main_view_tooltip"]').addClass('disabled');
}
}
});
}
window.get_gallery_images = function(id_virtualtour) {
$.ajax({
url: "ajax/get_gallery_images.php",
type: "POST",
data: {
id_virtualtour: id_virtualtour
},
async: true,
success: function (json) {
var rsp = JSON.parse(json);
if(rsp.length>0) {
parse_gallery_images(rsp);
} else {
$('#btn_generate_slideshow').addClass('disabled');
$('#list_images').html("<p>"+window.backend_labels.no_image_msg+"</p>");
}
}
});
}
window.change_font_size_slide_logo = function() {
var font_size = $('#slide_logo_font_size').val();
if(font_size!='') {
$('#slide_logo_text').css('font-size',font_size/1.5+'px');
}
}
window.change_font_size_slide_text = function() {
var font_size = $('#slide_text_font_size').val();
if(font_size!='') {
$('#slide_text_text').css('font-size',font_size/1.5+'px');
}
}
window.play_panorama_preview = function() {
$('#play_slide_panorama_btn').hide();
$('#panorama_slide_start_btn').hide();
$('#panorama_slide_end_btn').hide();
var initial_yaw = $('#panorama_slide_start_btn').attr('data-yaw');
var initial_pitch = $('#panorama_slide_start_btn').attr('data-pitch');
var initial_hfov = $('#panorama_slide_start_btn').attr('data-hfov');
var end_yaw = $('#panorama_slide_end_btn').attr('data-yaw');
var end_pitch = $('#panorama_slide_end_btn').attr('data-pitch');
var end_hfov = $('#panorama_slide_end_btn').attr('data-hfov');
var duration = $('#slide_panorama_duration').val();
window.viewer_pos.setYaw(parseInt(initial_yaw),false);
window.viewer_pos.setPitch(parseInt(initial_pitch),false);
window.viewer_pos.setHfov(parseInt(initial_hfov),false);
window.viewer_pos.lookAt(parseInt(end_pitch),parseInt(end_yaw),parseInt(end_hfov),duration*1000,function() {
setTimeout(function() {
window.viewer_pos.setYaw(parseInt(initial_yaw),false);
window.viewer_pos.setPitch(parseInt(initial_pitch),false);
window.viewer_pos.setHfov(parseInt(initial_hfov),false);
$('#play_slide_panorama_btn').show();
$('#panorama_slide_start_btn').show();
$('#panorama_slide_end_btn').show();
},500);
});
}
window.save_panorama_pos = function(type) {
var yaw = parseInt(window.viewer_pos.getYaw());
var pitch = parseInt(window.viewer_pos.getPitch());
var hfov = parseInt(window.viewer_pos.getHfov());
switch(type) {
case 'start':
$('#panorama_slide_start_btn').attr('data-yaw',yaw);
$('#panorama_slide_start_btn').attr('data-pitch',pitch);
$('#panorama_slide_start_btn').attr('data-hfov',hfov);
break;
case 'end':
$('#panorama_slide_end_btn').attr('data-yaw',yaw);
$('#panorama_slide_end_btn').attr('data-pitch',pitch);
$('#panorama_slide_end_btn').attr('data-hfov',hfov);
break;
}
reset_panorama_pos();
}
function reset_panorama_pos() {
$('#panorama_pos_slide').css('pointer-events','none');
$('#play_slide_panorama_btn').removeClass('disabled');
$('#panorama_slide_start_btn').removeClass('disabled');
$('#panorama_slide_end_btn').removeClass('disabled');
$('#panorama_slide_start_btn').html(window.backend_labels.start);
$('#panorama_slide_end_btn').html(window.backend_labels.end);
$('#panorama_slide_start_btn').removeClass('btn-success').addClass('btn-white');
$('#panorama_slide_start_btn').css('border','1px solid black');
$('#panorama_slide_start_btn').attr('onclick','set_start_panorama_pos()');
$('#panorama_slide_end_btn').removeClass('btn-success').addClass('btn-white');
$('#panorama_slide_end_btn').css('border','1px solid black');
$('#panorama_slide_end_btn').attr('onclick','set_end_panorama_pos()');
$('#drag_set_msg').hide();
}
window.set_start_panorama_pos = function() {
$('#panorama_pos_slide').css('pointer-events','initial');
$('#play_slide_panorama_btn').addClass('disabled');
$('#panorama_slide_start_btn').removeClass('btn-white').addClass('btn-success');
$('#panorama_slide_start_btn').css('border','1px solid white');
$('#panorama_slide_start_btn').attr('onclick','save_panorama_pos(\'start\')');
$('#panorama_slide_start_btn').html(window.backend_labels.set);
$('#panorama_slide_end_btn').addClass('disabled');
$('#drag_set_msg').show();
var initial_yaw = $('#panorama_slide_start_btn').attr('data-yaw');
var initial_pitch = $('#panorama_slide_start_btn').attr('data-pitch');
var initial_hfov = $('#panorama_slide_start_btn').attr('data-hfov');
if(initial_yaw!='') {
window.viewer_pos.setYaw(parseInt(initial_yaw),false);
window.viewer_pos.setPitch(parseInt(initial_pitch),false);
window.viewer_pos.setHfov(parseInt(initial_hfov),false);
}
}
window.set_end_panorama_pos = function() {
$('#panorama_pos_slide').css('pointer-events','initial');
$('#play_slide_panorama_btn').addClass('disabled');
$('#panorama_slide_start_btn').addClass('disabled');
$('#panorama_slide_end_btn').removeClass('btn-white').addClass('btn-success');
$('#panorama_slide_end_btn').css('border','1px solid white');
$('#panorama_slide_end_btn').attr('onclick','save_panorama_pos(\'end\')');
$('#panorama_slide_end_btn').html(window.backend_labels.set);
$('#drag_set_msg').show();
var end_yaw = $('#panorama_slide_end_btn').attr('data-yaw');
var end_pitch = $('#panorama_slide_end_btn').attr('data-pitch');
var end_hfov = $('#panorama_slide_end_btn').attr('data-hfov');
if(end_yaw!='') {
window.viewer_pos.setYaw(parseInt(end_yaw),false);
window.viewer_pos.setPitch(parseInt(end_pitch),false);
window.viewer_pos.setHfov(parseInt(end_hfov),false);
}
}
window.change_room_panorama_pos = function() {
var id_room = $('#room_panorama option:selected').attr('id');
var panorama_image = $('#room_panorama option:selected').attr('data-panorama');
if(window.id_video_slide_sel!=null) {
var index = window.array_slides.findIndex(element => parseInt(element.id) === parseInt(window.id_video_slide_sel));
if (parseInt(window.array_slides[index].id_room) == id_room) {
var params = JSON.parse(window.array_slides[index].params);
var initial_yaw = parseInt(params.initial_yaw);
var initial_pitch = parseInt(params.initial_pitch);
var initial_hfov = parseInt(params.initial_hfov);
var end_yaw = parseInt(params.end_yaw);
var end_pitch = parseInt(params.end_pitch);
var end_hfov = parseInt(params.end_hfov);
} else {
var initial_yaw = 0;
var initial_pitch = 0;
var initial_hfov = 100;
var end_yaw = 0;
var end_pitch = 0;
var end_hfov = 100;
}
} else {
var initial_yaw = 0;
var initial_pitch = 0;
var initial_hfov = 100;
var end_yaw = 0;
var end_pitch = 0;
var end_hfov = 100;
}
$('#panorama_slide_start_btn').attr('data-yaw',initial_yaw);
$('#panorama_slide_start_btn').attr('data-pitch',initial_pitch);
$('#panorama_slide_start_btn').attr('data-hfov',initial_hfov);
$('#panorama_slide_end_btn').attr('data-yaw',end_yaw);
$('#panorama_slide_end_btn').attr('data-pitch',end_pitch);
$('#panorama_slide_end_btn').attr('data-hfov',end_hfov);
if(window.s3_enabled==1) {
var panorama_url = window.s3_url+'viewer/panoramas/'+panorama_image+'?s3=1';
} else {
var panorama_url = '../viewer/panoramas/'+panorama_image;
}
load_viewer_pos('panorama_pos_slide',id_room,panorama_url,initial_yaw,initial_pitch,0,0,-90,90,360,180,-180,180,initial_hfov);
reset_panorama_pos();
}
window.new_slide = function(type) {
$('#modal_new_slide').modal('hide');
edit_video_slide(type,null);
}
window.edit_video_slide = function(type,id) {
window.id_video_slide_sel = id;
if(id!=null) {
var index = window.array_slides.findIndex(element => parseInt(element.id) === parseInt(id));
var slide = window.array_slides[index];
}
switch(type) {
case 'panorama':
if(id!=null) {
var duration = slide.duration;
var id_room = slide.id_room;
var params = JSON.parse(slide.params);
var initial_yaw = parseInt(params.initial_yaw);
var initial_pitch = parseInt(params.initial_pitch);
var initial_hfov = parseInt(params.initial_hfov);
var end_yaw = parseInt(params.end_yaw);
var end_pitch = parseInt(params.end_pitch);
var end_hfov = parseInt(params.end_hfov);
var panorama_image = slide.panorama_image;
} else {
var duration = 3;
var id_room = $('#room_panorama option:first').attr('id');
var initial_yaw = 0;
var initial_pitch = 0;
var initial_hfov = 100;
var end_yaw = 0;
var end_pitch = 0;
var end_hfov = 100;
var panorama_image = $('#room_panorama option:first').attr('data-panorama');
}
$('#slide_panorama_duration').val(duration);
try {
$('#room_panorama').selectpicker('destroy');
} catch (e) {}
$('#room_panorama option').prop('selected',false);
$('#room_panorama option[id="'+id_room+'"]').prop('selected',true);
$('#room_panorama').selectpicker({
liveSearch: true,
});
$('#panorama_slide_start_btn').attr('data-yaw',initial_yaw);
$('#panorama_slide_start_btn').attr('data-pitch',initial_pitch);
$('#panorama_slide_start_btn').attr('data-hfov',initial_hfov);
$('#panorama_slide_end_btn').attr('data-yaw',end_yaw);
$('#panorama_slide_end_btn').attr('data-pitch',end_pitch);
$('#panorama_slide_end_btn').attr('data-hfov',end_hfov);
if(window.s3_enabled==1) {
var panorama_url = window.s3_url+'viewer/panoramas/'+panorama_image+'?s3=1';
} else {
var panorama_url = '../viewer/panoramas/'+panorama_image;
}
load_viewer_pos('panorama_pos_slide',id_room,panorama_url,initial_yaw,initial_pitch,0,0,-90,90,360,180,-180,180,initial_hfov);
reset_panorama_pos();
break;
case 'image':
if(id!=null) {
var duration = slide.duration;
var file = slide.file;
} else {
var duration = 3;
var file = '';
}
$('#slide_image_duration').val(duration);
if(file!='') {
if(window.s3_enabled==1) {
$('#div_image_slide_image img').attr('src',window.s3_url+'video/assets/'+window.id_virtualtour+'/'+file);
} else {
$('#div_image_slide_image img').attr('src','../video/assets/'+window.id_virtualtour+'/'+file);
}
$('#div_image_slide_image').show();
$('#div_upload_slide_image').hide();
$('#div_delete_slide_image').show();
} else {
$('#div_image_slide_image img').attr('src','');
$('#div_image_slide_image').hide();
$('#div_upload_slide_image').show();
$('#div_delete_slide_image').hide();
}
break;
case 'video':
if(id!=null) {
var file = slide.file;
} else {
var file = '';
}
if(file!='') {
if(window.s3_enabled==1) {
$('#div_image_slide_video video').attr('src',window.s3_url+'video/assets/'+window.id_virtualtour+'/'+file);
} else {
$('#div_image_slide_video video').attr('src','../video/assets/'+window.id_virtualtour+'/'+file);
}
$('#div_image_slide_video').show();
$('#div_upload_slide_video').hide();
$('#div_delete_slide_video').show();
} else {
$('#div_image_slide_video video').attr('src','');
$('#div_image_slide_video').hide();
$('#div_upload_slide_video').show();
$('#div_delete_slide_video').hide();
}
break;
case 'logo':
if(id!=null) {
var duration = slide.duration;
var params = slide.params;
var file = slide.file;
} else {
var duration = 3;
var params = '{"bg_color":"#000000","font_color":"#ffffff","font_size":"24","bottom_padding":"0","text":""}';
var file = '';
}
var params = JSON.parse(params);
$('#slide_logo_duration').val(duration);
$('#slide_logo_background_color').val(params.bg_color);
$('#slide_logo_bottom_padding').val(params.bottom_padding);
$('#slide_logo_font_size').val(params.font_size);
$('#slide_logo_font_color').val(params.font_color);
$('#slide_logo_text').val(params.text);
$('#slide_logo_text').css('background-color',params.bg_color);
$('#slide_logo_text').css('color',params.font_color);
$('#slide_logo_text').css('font-size',params.font_size/1.5+'px');
$('#div_image_slide_logo').css('background-color',params.bg_color);
$("#slide_logo_background_color").spectrum("set", params.bg_color);
$("#slide_logo_font_color").spectrum("set", params.font_color);
if(file!='') {
if(window.s3_enabled==1) {
$('#div_image_slide_logo img').attr('src',window.s3_url+'video/assets/'+window.id_virtualtour+'/'+file);
} else {
$('#div_image_slide_logo img').attr('src','../video/assets/'+window.id_virtualtour+'/'+file);
}
$('#div_image_slide_logo').show();
$('#div_upload_slide_logo').hide();
$('#div_delete_slide_logo').show();
} else {
if(window.vt_logo!='') {
if(window.s3_enabled==1) {
$('#div_image_slide_logo img').attr('src',window.s3_url+'viewer/content/'+window.vt_logo);
} else {
$('#div_image_slide_logo img').attr('src','../viewer/content/'+window.vt_logo);
}
$('#div_image_slide_logo').show();
$('#div_upload_slide_logo').show();
$('#div_delete_slide_logo').hide();
} else {
$('#div_image_slide_logo img').attr('src','');
$('#div_image_slide_logo').hide();
$('#div_upload_slide_logo').show();
$('#div_delete_slide_logo').hide();
}
}
break;
case 'text':
if(id!=null) {
var duration = slide.duration;
var params = slide.params;
} else {
var duration = 3;
var params = '{"bg_color":"#000000","font_color":"#ffffff","font_size":"24","text":""}';
}
var params = JSON.parse(params);
$('#slide_text_duration').val(duration);
$('#slide_text_background_color').val(params.bg_color);
$('#slide_text_font_size').val(params.font_size);
$('#slide_text_font_color').val(params.font_color);
$('#slide_text_text').val(params.text);
$('#slide_text_text').css('background-color',params.bg_color);
$('#slide_text_text').css('color',params.font_color);
$('#slide_text_text').css('font-size',params.font_size/1.5+'px');
$("#slide_text_background_color").spectrum("set", params.bg_color);
$("#slide_text_font_color").spectrum("set", params.font_color);
break;
}
$('#btn_save_slide_'+type).attr('onclick','save_video_slide(\''+type+'\','+id+')');
$('#modal_slide_'+type).modal("show");
}
window.delete_video_slide = function(id) {
var retVal = confirm(window.backend_labels.delete_sure_msg);
if( retVal == true ) {
$.ajax({
url: "ajax/delete_video_slide.php",
type: "POST",
data: {
id: id
},
async: false,
success: function (json) {
get_video_slides(id_virtualtour,id_video);
}
});
} else {
return false;
}
}
window.duplicate_video_slide = function(id) {
var retVal = confirm(window.backend_labels.duplicate_sure_msg);
if( retVal == true ) {
$.ajax({
url: "ajax/duplicate_video_slide.php",
type: "POST",
data: {
id_video: window.id_video,
id: id
},
async: false,
success: function (json) {
get_video_slides(id_virtualtour,id_video);
}
});
} else {
return false;
}
}
window.save_video_slide = function(type,id) {
$('#modal_slide_'+type+' button').addClass('disabled');
switch(type) {
case 'panorama':
var id_room = $('#room option:selected').attr('id');
var duration = $('#slide_panorama_duration').val();
var initial_yaw = $('#panorama_slide_start_btn').attr('data-yaw');
var initial_pitch = $('#panorama_slide_start_btn').attr('data-pitch');
var initial_hfov = $('#panorama_slide_start_btn').attr('data-hfov');
var end_yaw = $('#panorama_slide_end_btn').attr('data-yaw');
var end_pitch = $('#panorama_slide_end_btn').attr('data-pitch');
var end_hfov = $('#panorama_slide_end_btn').attr('data-hfov');
var params = {'initial_yaw':initial_yaw,'initial_pitch':initial_pitch,'initial_hfov':initial_hfov,'end_yaw':end_yaw,'end_pitch':end_pitch,'end_hfov':end_hfov};
params = JSON.stringify(params);
break;
case 'image':
var id_room = '';
var duration = $('#slide_image_duration').val();
var image = $('#div_image_slide_image img').attr('src');
var file = '';
if(image!='') {
file = image.split('/').pop();
} else {
$('#txtFile_si').parent().addClass("error-highlight");
$('#modal_slide_'+type+' button').removeClass('disabled');
return;
}
params = '';
break;
case 'video':
var id_room = '';
var duration = '';
var video = $('#div_image_slide_video video').attr('src');
var file = '';
if(video!='') {
file = video.split('/').pop();
} else {
$('#txtFile_sv').parent().addClass("error-highlight");
$('#modal_slide_'+type+' button').removeClass('disabled');
return;
}
params = '';
break;
case 'logo':
var id_room = '';
var duration = $('#slide_logo_duration').val();
var logo = $('#div_image_slide_logo img').attr('src');
var file = '';
if(logo!='') {
if(logo.includes('video/assets')) {
file = logo.split('/').pop();
} else {
if(window.vt_logo=='') {
$('#txtFile_sl').parent().addClass("error-highlight");
$('#modal_slide_'+type+' button').removeClass('disabled');
return;
}
}
} else {
$('#txtFile_sl').parent().addClass("error-highlight");
$('#modal_slide_'+type+' button').removeClass('disabled');
return;
}
var bg_color = $("#slide_logo_background_color").val();
var bottom_padding = $("#slide_logo_bottom_padding").val();
var font_size = $("#slide_logo_font_size").val();
var font_color = $("#slide_logo_font_color").val();
var text = $('#slide_logo_text').val();
var params = {'bg_color':bg_color,'font_color':font_color,'font_size':font_size,'bottom_padding':bottom_padding,'text':text};
params = JSON.stringify(params);
break;
case 'text':
var id_room = '';
var duration = $('#slide_text_duration').val();
var file = '';
var bg_color = $("#slide_text_background_color").val();
var font_size = $("#slide_text_font_size").val();
var font_color = $("#slide_text_font_color").val();
var text = $('#slide_text_text').val();
var params = {'bg_color':bg_color,'font_color':font_color,'font_size':font_size,'text':text};
params = JSON.stringify(params);
break;
}
$.ajax({
url: "ajax/save_video_slide.php",
type: "POST",
data: {
id: id,
id_video: id_video,
id_room: id_room,
type: type,
file: file,
duration: duration,
params: params
},
async: true,
success: function (json) {
get_video_slides(id_virtualtour,id_video);
$('#modal_slide_'+type).modal("hide");
$('#modal_slide_'+type+' button').removeClass('disabled');
},
error: function() {
$('#modal_slide_'+type+' button').removeClass('disabled');
}
});
}
window.calculate_timeline_duration = function() {
var total_duration = 0;
var num_slides = 0;
jQuery.each(window.array_slides,function(index,slide) {
if(parseInt(slide.enabled)==1) {
total_duration = total_duration + parseFloat(slide.duration);
num_slides++;
}
})
if(total_duration!=0) {
var fade = parseFloat($('#fade').val());
total_duration = total_duration -(fade*((num_slides-1)/2));
$('#total_duration').html(convertSeconds(total_duration));
}
}
function convertSeconds(seconds) {
var h = Math.floor(seconds / 3600);
var m = Math.floor(seconds % 3600 / 60);
var s = Math.floor(seconds % 3600 % 60);
return (h > 0 ? h + ":" + (m < 10 ? "0" : "") : "00:") + (m < 10 ? "0" : "") + m + ":" + (s < 10 ? "0" : "") + s;
}
window.get_video_slides = function(id_virtualtour,id_video) {
$('#list_video_slides').empty();
$.ajax({
url: "ajax/get_video_slides.php",
type: "POST",
data: {
id_virtualtour: id_virtualtour,
id_video: id_video
},
async: true,
success: function (json) {
var rsp = JSON.parse(json);
var html = rsp.html;
var count = rsp.count;
window.array_slides = rsp.array_slides;
calculate_timeline_duration();
$('#list_video_slides').html(html).promise().done(function() {
if(count>0) {
var el = document.getElementById('list_video_slides');
Sortable.create(el,{
filter: ".sort-disabled",
onMove: function (e) { return e.related.className.indexOf('sort-disabled') === -1; },
onEnd: function (evt) {
var array_slides_priority = [];
$('#list_video_slides .video_slide').each(function () {
var id = $(this).attr('data-id');
array_slides_priority.push(id);
});
change_video_slides_order(array_slides_priority);
},
});
}
var num_video_slides = 0;
$('.video_slide.sort-item').each(function() {
if($(this).css('opacity')==1) {
num_video_slides++;
}
});
if(num_video_slides>=1) {
$('#btn_generate_video').removeClass('disabled');
} else {
$('#btn_generate_video').addClass('disabled');
}
})
}
});
}
window.get_product_images = function(id_product) {
$.ajax({
url: "ajax/get_product_images.php",
type: "POST",
data: {
id_product: id_product
},
async: true,
success: function (json) {
var rsp = JSON.parse(json);
if(rsp.length>0) {
parse_product_images(rsp);
} else {
$('#list_images').html("<p>"+window.backend_labels.no_image_msg+"</p>");
}
}
});
}
window.get_media_library_files = function(id_virtualtour) {
$.ajax({
url: "ajax/get_media_library_files.php",
type: "POST",
data: {
id_virtualtour: id_virtualtour,
type: 'all'
},
async: true,
success: function (json) {
var rsp = JSON.parse(json);
if(rsp.length>0) {
parse_media_library_files(rsp);
} else {
$('#list_files').html("<p>"+window.backend_labels.no_files_msg+"</p>");
}
}
});
}
window.get_music_library_files = function(id_virtualtour) {
$.ajax({
url: "ajax/get_music_library_files.php",
type: "POST",
data: {
id_virtualtour: id_virtualtour
},
async: true,
success: function (json) {
var rsp = JSON.parse(json);
if(rsp.length>0) {
parse_music_library_files(rsp);
} else {
$('#list_files').html("<p>"+window.backend_labels.no_files_msg+"</p>");
}
}
});
}
window.get_sound_library_files = function(id_virtualtour) {
$.ajax({
url: "ajax/get_sound_library_files.php",
type: "POST",
data: {
id_virtualtour: id_virtualtour
},
async: true,
success: function (json) {
var rsp = JSON.parse(json);
if(rsp.length>0) {
parse_sound_library_files(rsp);
} else {
$('#list_files').html("<p>"+window.backend_labels.no_files_msg+"</p>");
}
}
});
}
window.get_poi_gallery_images = function(id_poi) {
$.ajax({
url: "ajax/get_poi_gallery_images.php",
type: "POST",
data: {
id_poi: id_poi
},
async: true,
success: function (json) {
var rsp = JSON.parse(json);
if(rsp.length>0) {
parse_poi_gallery_images(rsp);
} else {
$('#list_images').html("<p>"+window.backend_labels.no_image_msg+"</p>");
}
}
});
}
window.get_poi_embed_gallery_images = function(id_poi) {
$.ajax({
url: "ajax/get_poi_embed_gallery_images.php",
type: "POST",
data: {
id_poi: id_poi
},
async: true,
success: function (json) {
var rsp = JSON.parse(json);
if(rsp.length>0) {
parse_poi_embed_gallery_images(rsp);
} else {
$('#list_images').html("<p>"+window.backend_labels.no_image_msg+"</p>");
}
}
});
}
window.get_poi_object360_images = function(id_poi) {
$.ajax({
url: "ajax/get_poi_object360_images.php",
type: "POST",
data: {
id_poi: id_poi
},
async: true,
success: function (json) {
var rsp = JSON.parse(json);
if(rsp.length>0) {
parse_poi_object360_images(rsp);
} else {
$('#list_images').html("<p>"+window.backend_labels.no_image_msg+"</p>");
}
}
});
}
window.get_icon_images = function(id_virtualtour) {
$.ajax({
url: "ajax/get_icon_images.php",
type: "POST",
data: {
id_virtualtour: id_virtualtour
},
async: true,
success: function (json) {
var rsp = JSON.parse(json);
if(rsp.length>0) {
parse_icon_images(rsp);
} else {
$('#list_images').html("<p>"+window.backend_labels.no_icon_msg+"</p>");
}
}
});
}
window.get_icon_images_m = function(id_virtualtour,m) {
$.ajax({
url: "ajax/get_icon_images_m.php",
type: "POST",
data: {
id_virtualtour: id_virtualtour,
m: m
},
async: true,
success: function (json) {
var rsp = JSON.parse(json);
switch(m) {
case 'icons':
$('#list_images').html(rsp.html).promise().done(function() {});
break;
case 'marker':
case 'marker_h':
$('#list_images_im').html(rsp.html).promise().done(function() {
switch (m) {
case 'marker':
$('.lottie_icon_marker_list').each(function () {
var id = $(this).attr('data-id');
var image = $(this).attr('data-image');
var id_vt = $(this).attr('data-id_vt');
if(window.s3_enabled==1 && id_vt!='') {
var json_url = window.s3_url+'viewer/icons/'+image+'?s3=1';
} else {
var json_url = '../viewer/icons/'+image;
}
bodymovin.loadAnimation({
container: document.getElementById('lottie_icon_marker_'+id),
renderer: 'svg',
loop: true,
autoplay: true,
path: json_url,
rendererSettings: {
progressiveLoad: true,
}
});
});
break;
case 'marker_h':
$('.lottie_icon_list').each(function () {
var id = $(this).attr('data-id');
var image = $(this).attr('data-image');
var id_vt = $(this).attr('data-id_vt');
if(window.s3_enabled==1 && id_vt!='') {
var json_url = window.s3_url+'viewer/icons/'+image+'?s3=1';
} else {
var json_url = '../viewer/icons/'+image;
}
bodymovin.loadAnimation({
container: document.getElementById('lottie_icon_'+id),
renderer: 'svg',
loop: true,
autoplay: true,
path: json_url,
rendererSettings: {
progressiveLoad: true,
}
});
});
break;
}
});
break;
case 'poi':
case 'poi_h':
$('#list_images_ip').html(rsp.html).promise().done(function() {
switch (m) {
case 'poi':
$('.lottie_icon_poi_list').each(function () {
var id = $(this).attr('data-id');
var image = $(this).attr('data-image');
var id_vt = $(this).attr('data-id_vt');
if(window.s3_enabled==1 && id_vt!='') {
var json_url = window.s3_url+'viewer/icons/'+image+'?s3=1';
} else {
var json_url = '../viewer/icons/'+image;
}
bodymovin.loadAnimation({
container: document.getElementById('lottie_icon_poi_'+id),
renderer: 'svg',
loop: true,
autoplay: true,
path: json_url,
rendererSettings: {
progressiveLoad: true,
}
});
});
break;
case 'poi_h':
$('.lottie_icon_list').each(function () {
var id = $(this).attr('data-id');
var image = $(this).attr('data-image');
var id_vt = $(this).attr('data-id_vt');
if(window.s3_enabled==1 && id_vt!='') {
var json_url = window.s3_url+'viewer/icons/'+image+'?s3=1';
} else {
var json_url = '../viewer/icons/'+image;
}
bodymovin.loadAnimation({
container: document.getElementById('lottie_icon_'+id),
renderer: 'svg',
loop: true,
autoplay: true,
path: json_url,
rendererSettings: {
progressiveLoad: true,
}
});
});
break;
}
});
break;
}
}
});
}
window.preview_poi_content = function (id) {
if(window.is_fullscreen) {
var parent_elem = document.getElementById('poi_editor_div');
} else {
var parent_elem = 'body';
}
var content = '';
if($('#'+id).is(':visible')) {
content = $('#'+id).val();
} else {
$('.input_lang[data-target-id="poi_content"]').each(function() {
if($(this).is(':visible')) {
content = $(this).val();
}
});
}
if(content!='') {
var ext = content.split('.').pop().toLowerCase();
var type = $('#'+id).attr('data-type');
switch(type) {
case 'pointclouds':
if(window.s3_enabled==1) {
var url_file = window.s3_url+'viewer/'+content;
} else {
var url_file = content;
}
var iframe = '<iframe class="potree_iframe" style="width:100%;height:100%;" allow="accelerometer; camera; display-capture; fullscreen; geolocation; gyroscope; magnetometer; microphone; midi; xr-spatial-tracking;" width="100%" height="100%" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="../viewer/vendor/potree/viewer/index.html?id_poi='+window.poi_id_edit+'&file='+url_file+'&edit=1"></iframe>';
var html = '<div style="overflow:hidden;padding:0;width:calc(100% - 0px);height:calc(100% - 0px);">'+iframe+'</div>';
$.fancybox.open({
src : html,
type : 'html',
touch: false,
smallBtn: false,
clickOutside: false,
afterShow: function(instance, current) {
$('.fancybox-toolbar').addClass('always-visible');
},
beforeClose: function(instance, current) {
$('.fancybox-toolbar').removeClass('always-visible');
}
});
break;
default:
switch (ext) {
case 'mp3':
if(content.startsWith('http')) {
var url = content;
} else {
if(window.s3_enabled==1) {
var url = window.s3_url+'viewer/'+content;
} else {
var url = '../viewer/'+content;
}
}
content = '<div><audio controls preload="auto" playsinline webkit-playsinline><source src="'+url+'" type="audio/mpeg"></audio></div>';
$.fancybox.open({
src: content,
type: 'html',
parentEl: parent_elem
});
break;
case 'glb':
case 'gltf':
case 'usdz':
var array_files = content.split(",");
var glb_file = '';
jQuery.each(array_files, function(index_s, file_s) {
if(file_s.split('.').pop().toLowerCase()=='glb') {
glb_file = file_s;
}
if(file_s.split('.').pop().toLowerCase()=='gltf') {
glb_file = file_s;
}
});
if(content.startsWith('http')) {
var url = content;
} else {
if(window.s3_enabled==1) {
var url = window.s3_url+'viewer/'+glb_file;
} else {
var url = '../viewer/'+glb_file;
}
}
if($('#params_exposure').length) {
var exposure = $('#params_exposure').val();
} else {
var exposure = 1;
}
if($('#params_environment').length) {
var environment = $('#params_environment option:selected').attr('id');
} else {
var environment = 'legacy';
}
if($('#params_animation').length) {
var animation = $('#params_animation option:selected').attr('id');
if(animation=='none') {
var animation = '';
var autoplay = '';
} else {
var autoplay = 'autoplay';
}
} else {
var animation = '';
var autoplay = '';
}
var html = '<div class="poi_object3d_content"><model-viewer disable-tap disable-pan disable-zoom '+autoplay+' animation-name="'+animation+'" src="'+url+'" alt="" environment-image="'+environment+'" exposure="'+exposure+'" auto-rotate camera-controls></model-viewer></div>';
$.fancybox.open({
src : html,
type : 'html',
touch: false,
smallBtn: false,
clickOutside: false,
parentEl: parent_elem,
afterShow : function() {}
});
break;
case 'json':
if(content.startsWith('http')) {
var url = content;
} else {
if(window.s3_enabled==1) {
var url = window.s3_url+'viewer/'+content+'?s3=1';
} else {
var url = '../viewer/'+content;
}
}
var html = '<div class="poi_lottie_content"></div>';
$.fancybox.open({
src : html,
type : 'html',
touch: false,
smallBtn: false,
clickOutside: false,
parentEl: parent_elem,
afterShow : function() {
bodymovin.loadAnimation({
container: document.getElementsByClassName('poi_lottie_content')[0],
renderer: 'svg',
loop: true,
autoplay: true,
path: url,
rendererSettings: {
progressiveLoad: true,
}
});
}
});
break;
case 'pdf':
if(content.startsWith('http')) {
$.fancybox.open({
src: '../viewer/vendor/pdf_viewer/index.php?file='+content,
type: 'iframe',
parentEl: parent_elem
});
} else {
if(window.s3_enabled==1) {
var file = window.s3_url+'viewer/'+content;
} else {
var file = window.base_url+'viewer/'+content;
}
$.fancybox.open({
src: '../viewer/vendor/pdf_viewer/index.php?file='+file,
parentEl: parent_elem
});
}
break;
default:
if(content.startsWith('http')) {
$.fancybox.open({
src: content,
type: 'iframe',
parentEl: parent_elem
});
} else {
if(window.s3_enabled==1) {
content = window.s3_url+'viewer/'+content;
} else {
content = '../viewer/'+content;
}
$.fancybox.open({
src: content,
parentEl: parent_elem
});
}
break;
}
break;
}
}
}
window.switch_gallery_mode = function(mode) {
switch(mode) {
case 'images':
$('#btn_gallerymode_images').removeClass('btn-outline-primary').addClass('btn-primary');
$('#btn_gallerymode_slideshow').addClass('btn-outline-primary').removeClass('btn-primary');
$('#gallery_div').removeClass('d-none');
break;
case 'slideshow':
$('#btn_gallerymode_images').addClass('btn-outline-primary').removeClass('btn-primary');
$('#btn_gallerymode_slideshow').removeClass('btn-outline-primary').addClass('btn-primary');
$('#gallery_div').addClass('d-none');
break;
}
$.ajax({
url: "ajax/switch_gallery_mode.php",
type: "POST",
data: {
id_virtualtour: id_virtualtour,
mode: mode
},
async: false,
success: function (json) {}
});
}
window.save_gallery = function() {
$('#save_gallery_btn').addClass('disabled');
var width = $('#s_width').val();
var height = $('#s_height').val();
var slide_duration = $('#s_slide_duration').val();
var fade_duration = $('#s_fade_duration').val();
var zoom_rate = $('#s_zoom_rate').val();
var audio = $('#s_audio option:selected').attr('id');
if(audio=='0') audio='';
var watermark = $('#s_watermark option:selected').attr('id');
var watermark_opacity = $('#s_watermark_opacity').val();
var gallery_transition = $('#g_transition option:selected').attr('id');
var gallery_thumbs = $('#g_thumbs option:selected').attr('id');
var gallery_autoplay = $('#g_autoplay').is(':checked')?1:0;
var gallery_slide_duration = $('#g_slide_duration').val();
$.ajax({
url: 'ajax/save_gallery.php',
type: "POST",
data: {
id_virtualtour: id_virtualtour,
width: width,
height: height,
slide_duration: slide_duration,
fade_duration: fade_duration,
zoom_rate: zoom_rate,
audio: audio,
watermark: watermark,
watermark_opacity: watermark_opacity,
gallery_transition: gallery_transition,
gallery_thumbs: gallery_thumbs,
gallery_autoplay: gallery_autoplay,
gallery_slide_duration: gallery_slide_duration
},
async: true,
success: function (json) {
$('#save_gallery_btn').removeClass('disabled');
}
});
}
window.generate_slideshow = function() {
$('#btn_generate_slideshow').addClass('disabled');
$('#modal_generate_slideshow').modal('show');
setTimeout(function () {
$('#btn_continue_w').removeClass('d-none');
},10000);
var width = $('#s_width').val();
var height = $('#s_height').val();
var slide_duration = $('#s_slide_duration').val();
var fade_duration = $('#s_fade_duration').val();
var zoom_rate = $('#s_zoom_rate').val();
var audio = $('#s_audio option:selected').attr('id');
if(audio=='0') audio='';
var watermark = $('#s_watermark option:selected').attr('id');
var watermark_opacity = $('#s_watermark_opacity').val();
var gallery_transition = $('#g_transition option:selected').attr('id');
var gallery_thumbs = $('#g_thumbs option:selected').attr('id');
var gallery_autoplay = $('#g_autoplay').is(':checked')?1:0;
var gallery_slide_duration = $('#g_slide_duration').val();
switch(window.slideshow_type) {
case 'local':
var url_ajax = "../services/generate_slideshow.php";
break;
case 'cloud':
var url_ajax = "../services/generate_slideshow_cloud.php";
break;
}
$.ajax({
url: url_ajax,
type: "POST",
data: {
id_virtualtour: id_virtualtour,
width: width,
height: height,
slide_duration: slide_duration,
fade_duration: fade_duration,
zoom_rate: zoom_rate,
audio: audio,
watermark: watermark,
watermark_opacity: watermark_opacity,
gallery_transition: gallery_transition,
gallery_thumbs: gallery_thumbs,
gallery_autoplay: gallery_autoplay,
gallery_slide_duration: gallery_slide_duration
},
async: true,
success: function (json) {
try {
var rsp = JSON.parse(json);
if(rsp.status=='ok') {
$('#modal_generate_slideshow').modal('hide');
location.reload();
} else {
$('#btn_generate_slideshow').removeClass('disabled');
$('#modal_generate_slideshow').modal('hide');
alert(rsp.msg);
}
} catch (e) {
$('#btn_generate_slideshow').removeClass('disabled');
$('#modal_generate_slideshow').modal('hide');
alert(window.backend_labels.generic_error_msg);
}
},
error: function () {
$('#btn_generate_slideshow').removeClass('disabled');
$('#modal_generate_slideshow').modal('hide');
alert(window.backend_labels.generic_error_msg);
}
});
}
window.download_file = function(uri) {
var link = document.createElement("a");
link.setAttribute('download', '');
link.target = '_blank';
link.href = uri;
document.body.appendChild(link);
link.click();
link.remove();
}
window.rotate_image = function(image,id,angle) {
$.ajax({
url: "ajax/rotate_image_gallery.php",
type: "POST",
data: {
id_gallery: id,
filename: image,
rotate: angle
},
async: false,
success: function (json) {
get_gallery_images(window.id_virtualtour);
}
});
}
window.toggle_gallery_image_visibility = function(id) {
var visible = $('#gallery_image_visible_'+id).is(':checked');
if(visible) {
visible=1;
$('#gallery_image_'+id).css('opacity',1);
} else {
visible=0;
$('#gallery_image_'+id).css('opacity',0.6);
}
jQuery.each(window.gallery_images, function(index, image) {
var id_ig = image.id;
if(id_ig==id) {
window.gallery_images[index].visible=visible;
}
});
var num_gallery_images = 0;
jQuery.each(window.gallery_images, function(index, image) {
if(image.visible==1) {
num_gallery_images++;
}
});
if(num_gallery_images>=2) {
$('#btn_generate_slideshow').removeClass('disabled');
} else {
$('#btn_generate_slideshow').addClass('disabled');
}
$.ajax({
url: "ajax/set_gallery_image_visibility.php",
type: "POST",
data: {
id_gallery: id,
visible: visible
},
async: true,
success: function () {}
});
}
window.toggle_video_slide_visibility = function(id) {
var visible = $('#visible_video_slide_'+id).is(':checked');
if(visible) {
visible=1;
$('.video_slide[data-id="'+id+'"]').css('opacity',1);
} else {
visible=0;
$('.video_slide[data-id="'+id+'"]').css('opacity',0.5);
}
var num_video_slides = 0;
$('.video_slide.sort-item').each(function() {
if($(this).css('opacity')==1) {
num_video_slides++;
}
});
if(num_video_slides>=1) {
$('#btn_generate_video').removeClass('disabled');
} else {
$('#btn_generate_video').addClass('disabled');
}
jQuery.each(window.array_slides, function(index, slide) {
if(parseInt(slide.id)==id) {
window.array_slides[index].enabled = visible;
}
});
calculate_timeline_duration();
$.ajax({
url: "ajax/set_video_slide_visibility.php",
type: "POST",
data: {
id_slide: id,
visible: visible
},
async: true,
success: function () {}
});
}
function parse_rooms_alt_images(rooms_alt_images) {
var html = '';
window.rooms_alt_images = rooms_alt_images;
html += '<div data-id="'+window.id_room+'" style="position: relative;" class="image_room_alt no_drag float-left mb-2 ml-1 mr-1"><div class="remove_image_room_alt"><i onclick="edit_main_view_tooltip();" style="font-size: 22px;color: white;cursor: pointer" class="fas fa-edit"></i></div><img draggable="false" style="height:90px;border-radius:5px;" src="'+window.panorama_image.replace('/panoramas/','/panoramas/thumb/')+'" /></div>';
if(rooms_alt_images.length>=2) {
var cursor = 'move';
} else {
var cursor = 'default';
}
if(window.virtual_staging==2) {
var disabled = 'disabled';
} else {
var disabled = '';
}
jQuery.each(rooms_alt_images, function(index, image) {
var id = image.id;
var image = image.panorama_image;
if(window.s3_enabled==1) {
var image_url = window.s3_url+'viewer/panoramas/thumb/'+image;
} else {
var image_url = '../viewer/panoramas/thumb/'+image;
}
html += '<div data-id="'+id+'" style="position: relative;cursor: '+cursor+';" class="image_room_alt float-left mb-2 ml-1 mr-1"><div class="remove_image_room_alt"><i onclick="edit_view_tooltip('+index+');" style="font-size: 22px;color: white;cursor: pointer" class="fas fa-edit '+disabled+'"></i> <i onclick="remove_image_room_alt('+id+');" style="font-size: 22px;color: white;cursor: pointer" class="fas fa-trash-alt"></i></div><img draggable="false" style="height:90px;border-radius:5px;" src="'+image_url+'" /></div>';
});
$('#list_rooms_alt').html(html).promise().done(function() {
if(rooms_alt_images.length>=2) {
var el = document.getElementById('list_rooms_alt');
Sortable.create(el,{
filter: ".no_drag",
onMove: function (e) { return e.related.className.indexOf('no_drag') === -1; },
onEnd: function (evt) {
var array_images_priority = [];
$('#list_rooms_alt .image_room_alt').each(function () {
var id = $(this).attr('data-id');
array_images_priority.push(id);
});
change_rooms_alt_order(array_images_priority);
},
});
}
});
}
function parse_gallery_images(images_array) {
var html = '';
window.gallery_images = images_array;
jQuery.each(images_array, function(index, image) {
var id = image.id;
var visible = image.visible;
var image = image.image;
if(window.s3_enabled==1) {
var image_url = window.s3_url+'viewer/gallery/thumb/'+image+'?s3=1';
} else {
var image_url = '../viewer/gallery/thumb/'+image;
}
if(visible==1) {
var opacity=1;
var checked = "checked";
} else {
var opacity=0.6;
var checked = "";
}
html += '<div data-id="'+id+'" style="position:relative;cursor:move;min-width:120px;" class="image_gallery float-left mb-2 ml-1 mr-1"><div class="remove_image_gallery"><i onclick="edit_image_gallery('+index+');" style="font-size: 22px;color: white;cursor: pointer" class="fas fa-heading"></i> <i onclick="remove_image_gallery('+id+');" style="font-size: 22px;color: white;cursor: pointer" class="fas fa-trash-alt"></i></div><div class="rotate_image_gallery"><i onclick="rotate_image(\''+image+'\','+id+',-90);" class="fas fa-undo rotate_left"></i><i onclick="rotate_image(\''+image+'\','+id+',90);" style="transform:scaleX(-1);" class="fas fa-undo rotate_right"></i></div><div class="visible_image_gallery"><input id="gallery_image_visible_'+id+'" onclick="toggle_gallery_image_visibility('+id+');" '+checked+' type="checkbox" /></div><img id="gallery_image_'+id+'" draggable="false" style="object-fit:cover;width:120px;height:120px;opacity:'+opacity+'" src="'+image_url+'" /></div>';
});
$('#list_images').html(html).promise().done(function () {
var el = document.getElementById('list_images');
Sortable.create(el,{
onEnd: function (evt) {
var array_images_priority = [];
$('#list_images .image_gallery').each(function () {
var id = $(this).attr('data-id');
array_images_priority.push(id);
});
change_image_gallery_order(array_images_priority);
},
});
});
var num_gallery_images = 0;
jQuery.each(window.gallery_images, function(index, image) {
if(image.visible==1) {
num_gallery_images++;
}
});
if(num_gallery_images>=2) {
$('#btn_generate_slideshow').removeClass('disabled');
} else {
$('#btn_generate_slideshow').addClass('disabled');
}
}
function parse_product_images(images_array) {
var html = '';
window.product_images = images_array;
jQuery.each(images_array, function(index, image) {
var id = image.id;
var image = image.image;
if(window.s3_enabled==1) {
var image_url = window.s3_url+'viewer/products/thumb/'+image;
} else {
var image_url = '../viewer/products/thumb/'+image;
}
html += '<div data-id="'+id+'" style="position: relative;cursor: move" class="image_product float-left mb-2 ml-1 mr-1"><div class="remove_image_product"><i onclick="remove_image_product('+id+');" style="font-size: 22px;color: white;cursor: pointer" class="fas fa-trash-alt"></i></div><img draggable="false" style="height: 70px;" src="'+image_url+'" /></div>';
});
$('#list_images').html(html).promise().done(function () {
var el = document.getElementById('list_images');
Sortable.create(el,{
onEnd: function (evt) {
var array_images_priority = [];
$('#list_images .image_product').each(function () {
var id = $(this).attr('data-id');
array_images_priority.push(id);
});
change_image_product_order(array_images_priority);
},
});
});
}
function parse_media_library_files(files_array) {
var html = '';
window.media_library_files = files_array;
jQuery.each(files_array, function(index, file_t) {
var id = parseInt(file_t.id);
var file = file_t.file;
var from = file_t.from;
var count = file_t.count;
var id_vt = file_t.id_virtualtour;
switch(from) {
case 'media_library':
if(window.s3_enabled==1 && id_vt!='') {
var src = window.s3_url+'viewer/media/'+file;
var src_t = window.s3_url+'viewer/media/thumb/'+file;
} else {
var src = '../viewer/media/'+file;
var src_t = '../viewer/media/thumb/'+file;
}
break;
case 'content':
if(window.s3_enabled==1 && id_vt!='') {
var src = window.s3_url+'viewer/content/'+file;
var src_t = window.s3_url+'viewer/content/thumb/'+file;
} else {
var src = '../viewer/content/'+file;
var src_t = '../viewer/content/thumb/'+file;
}
break;
}
if(file.includes('.mp4') || file.includes('.mov') || file.includes('.webm')) {
var icon = '<span class="icon_type"><i class="fa fa-video"></i> '+count+'</span>';
var html_file = '<video draggable="false" preload="auto" height="100px" src="'+src+'#t=2" playsinline webkit-playsinline autoplay loop muted style="height: 100px;"></video>';
} else {
var icon = '<span class="icon_type"><i class="fa fa-image"></i> '+count+'</span>';
var html_file = '<img draggable="false" style="height: 100px;" src="'+src_t+'" onerror="this.src=\''+src+'\';this.onerror=\'\';" />';
}
if(id==0 || count>0 || window.id_virtualtour!=id_vt) {
html += '<div style="display:inline-block;position:relative;vertical-align:top;pointer-events:none" class="file_media_library mb-2 ml-1 mr-1">'+icon+''+html_file+'</div>';
} else {
html += '<div style="display:inline-block;position:relative;vertical-align:top;" class="file_media_library mb-2 ml-1 mr-1">'+icon+'<div class="remove_file_media_library"><i onclick="remove_media_library_file('+id+');" style="font-size: 22px;color: white;cursor: pointer" class="fas fa-trash-alt"></i></div>'+html_file+'</div>';
}
});
$('#list_files').html(html).promise().done(function () {
$("#list_files img").each(function(){
var image = $(this);
if(image.context.naturalWidth == 0 || image.readyState == 'uninitialized'){
$(image).parent().hide();
}
});
});
}
function parse_music_library_files(files_array) {
var html = '';
window.music_library_files = files_array;
jQuery.each(files_array, function(index, file_t) {
var id = parseInt(file_t.id);
var file = file_t.file;
var count = file_t.count;
var id_vt = file_t.id_virtualtour;
if(window.s3_enabled==1 && id_vt!='') {
var src = window.s3_url+'viewer/content/'+file;
} else {
var src = '../viewer/content/'+file;
}
var file_name = file.split('.').slice(0, -1).join('.');
var icon = '<span class="icon_type noselect"><i class="fa fa-music"></i> '+count+'</span>';
var name = '<span class="name_file noselect">'+file_name+'</span>';
var html_file = '<audio draggable="false" controls preload="auto" playsinline webkit-playsinline><source src="'+src+'" type="audio/mpeg"></audio>';
if(id==0 || count>0 || window.id_virtualtour!=id_vt) {
html += '<div style="display:inline-block;position:relative;vertical-align:top;" class="file_music_library col-md-4 mb-2">'+icon+''+name+''+html_file+'</div>';
} else {
html += '<div style="display:inline-block;position:relative;vertical-align:top;" class="file_music_library col-md-4 mb-2">'+icon+''+name+'<i onclick="remove_music_library_file('+id+');" style="font-size: 12px;cursor: pointer" class="remove_file_music_library fas fa-trash-alt"></i>'+html_file+'</div>';
}
});
$('#list_files').html(html);
}
function parse_sound_library_files(files_array) {
var html = '';
window.sound_library_files = files_array;
jQuery.each(files_array, function(index, file_t) {
var id = parseInt(file_t.id);
var file = file_t.file;
var count = file_t.count;
var id_vt = file_t.id_virtualtour;
if(window.s3_enabled==1 && id_vt!='') {
var src = window.s3_url+'viewer/content/'+file;
} else {
var src = '../viewer/content/'+file;
}
var file_name = file.split('.').slice(0, -1).join('.');
var icon = '<span class="icon_type noselect"><i class="fa fa-music"></i> '+count+'</span>';
var name = '<span class="name_file noselect">'+file_name+'</span>';
var html_file = '<audio draggable="false" controls preload="auto" playsinline webkit-playsinline><source src="'+src+'" type="audio/mpeg"></audio>';
if(id==0 || count>0 || window.id_virtualtour!=id_vt) {
html += '<div style="display:inline-block;position:relative;vertical-align:top;" class="file_music_library col-md-4 mb-2">'+icon+''+name+''+html_file+'</div>';
} else {
html += '<div style="display:inline-block;position:relative;vertical-align:top;" class="file_music_library col-md-4 mb-2">'+icon+''+name+'<i onclick="remove_sound_library_file('+id+');" style="font-size: 12px;cursor: pointer" class="remove_file_music_library fas fa-trash-alt"></i>'+html_file+'</div>';
}
});
$('#list_files').html(html);
}
function parse_poi_gallery_images(images_array) {
var html = '';
window.gallery_images = images_array;
jQuery.each(images_array, function(index, image) {
var id = image.id;
var image = image.image;
if(window.s3_enabled==1) {
var image_url = window.s3_url+'viewer/gallery/thumb/'+image+'?s3=1';
} else {
var image_url = '../viewer/gallery/thumb/'+image;
}
html += '<div data-id="'+id+'" style="position: relative;cursor: move" class="image_gallery float-left mb-2 ml-1 mr-1"><div class="remove_image_gallery"><i onclick="edit_image_poi_gallery('+index+');" style="font-size: 22px;color: white;cursor: pointer" class="fas fa-heading"></i> <i onclick="remove_image_poi_gallery('+id+');" style="font-size: 22px;color: white;cursor: pointer" class="fas fa-trash-alt"></i></div><img draggable="false" style="height: 70px;" src="'+image_url+'" /></div>';
});
$('#list_images').html(html).promise().done(function () {
var el = document.getElementById('list_images');
Sortable.create(el,{
onEnd: function (evt) {
var array_images_priority = [];
$('#list_images .image_gallery').each(function () {
var id = $(this).attr('data-id');
array_images_priority.push(id);
});
change_poi_image_gallery_order(array_images_priority);
},
});
});
}
function parse_poi_embed_gallery_images(images_array) {
var html = '';
window.gallery_images = images_array;
jQuery.each(images_array, function(index, image) {
var id = image.id;
var image = image.image;
if(window.s3_enabled==1) {
var image_url = window.s3_url+'viewer/gallery/thumb/'+image+'?s3=1';
} else {
var image_url = '../viewer/gallery/thumb/'+image;
}
html += '<div data-id="'+id+'" style="position: relative;cursor: move" class="image_gallery float-left mb-2 ml-1 mr-1"><div class="remove_image_embed_gallery"><i onclick="remove_image_poi_embed_gallery('+id+');" style="font-size: 22px;color: white;cursor: pointer" class="fas fa-trash-alt"></i></div><img draggable="false" style="height: 70px;" src="'+image_url+'" /></div>';
});
$('#list_images').html(html).promise().done(function () {
var el = document.getElementById('list_images');
Sortable.create(el,{
onEnd: function (evt) {
var array_images_priority = [];
$('#list_images .image_gallery').each(function () {
var id = $(this).attr('data-id');
array_images_priority.push(id);
});
change_poi_image_embed_gallery_order(array_images_priority);
},
});
});
}
function parse_poi_object360_images(images_array) {
var html = '';
window.object360_images = images_array;
jQuery.each(images_array, function(index, image) {
var id = image.id;
var image = image.image;
var millieconds = new Date().getMilliseconds();
if(window.s3_enabled==1) {
var image_url = window.s3_url+'viewer/objects360/'+image;
} else {
var image_url = '../viewer/objects360/'+image;
}
html += '<div data-id="'+id+'" style="position: relative;cursor: move" class="image_object360 float-left mb-2 ml-1 mr-1"><div class="remove_image_object360"><i onclick="remove_image_poi_object360('+id+');" style="font-size: 22px;color: white;cursor: pointer" class="fas fa-trash-alt"></i></div><img draggable="false" style="height: 70px;" src="'+image_url+'?v='+millieconds+'" /></div>';
});
$('#list_images').html(html).promise().done(function () {
var array_images_priority = [];
$('#list_images .image_object360').each(function () {
var id = $(this).attr('data-id');
array_images_priority.push(id);
});
change_poi_image_object360_order(array_images_priority);
var el = document.getElementById('list_images');
Sortable.create(el,{
onEnd: function (evt) {
var array_images_priority = [];
$('#list_images .image_object360').each(function () {
var id = $(this).attr('data-id');
array_images_priority.push(id);
});
change_poi_image_object360_order(array_images_priority);
},
});
});
}
function parse_icon_images(images_array) {
var html = '';
jQuery.each(images_array, function(index, image) {
var id = image.id;
var id_vt = image.id_virtualtour;
var image = image.image;
var ext = image.split('.').pop().toLowerCase();
if(ext=='json') {
var html_image = '<div class="lottie_icon_list" data-id="'+id+'" data-id_vt="'+id_vt+'" data-image="'+image+'" id="lottie_icon_'+id+'" style="height:100px;width:100px;vertical-align:middle"></div>';
} else {
if(window.s3_enabled==1 && id_vt!='') {
var image_url = window.s3_url+'viewer/icons/'+image+'?s3=1';
} else {
var image_url = '../viewer/icons/'+image;
}
var html_image = '<img draggable="false" style="height: 100px;" src="'+image_url+'" />';
}
if(window.id_virtualtour!=id_vt) {
html += '<div data-id="'+id+'" style="position: relative" class="image_icon float-left mb-2 ml-1 mr-1">'+html_image+'</div>';
} else {
html += '<div data-id="'+id+'" style="position: relative" class="image_icon float-left mb-2 ml-1 mr-1"><div class="remove_image_icon"><i onclick="remove_image_icon('+id+');" style="font-size: 24px;color: white;cursor: pointer;" class="fas fa-trash-alt"></i></div>'+html_image+'</div>';
}
});
$('#list_images').html(html).promise().done(function () {
$('.lottie_icon_list').each(function () {
var id = $(this).attr('data-id');
var image = $(this).attr('data-image');
var id_vt = $(this).attr('data-id_vt');
if(window.s3_enabled==1 && id_vt!='') {
var json_url = window.s3_url+'viewer/icons/'+image+'?s3=1';
} else {
var json_url = '../viewer/icons/'+image;
}
bodymovin.loadAnimation({
container: document.getElementById('lottie_icon_'+id),
renderer: 'svg',
loop: true,
autoplay: true,
path: json_url,
rendererSettings: {
progressiveLoad: true,
}
});
});
});
}
window.open_modal_media_library = function (type,target) {
$('#modal_media_library .modal-body').empty();
$('#modal_media_library').modal('show');
$.ajax({
url: "ajax/get_media_library_files.php",
type: "POST",
data: {
id_virtualtour: id_virtualtour,
type: type
},
async: true,
success: function (json) {
var html = '';
var files_array = JSON.parse(json);
if(files_array.length==0) {
html = "<p>"+window.backend_labels.no_files_msg+"</p>";
} else {
jQuery.each(files_array, function(index, file_t) {
var file = file_t.file;
var from = file_t.from;
var id_vt = file_t.id_vt;
switch(from) {
case 'media_library':
if(window.s3_enabled==1 && id_vt!='') {
var src = window.s3_url+'viewer/media/'+file;
var src_t = window.s3_url+'viewer/media/thumb/'+file;
} else {
var src = '../viewer/media/'+file;
var src_t = '../viewer/media/thumb/'+file;
}
break;
case 'content':
if(window.s3_enabled==1 && id_vt!='') {
var src = window.s3_url+'viewer/content/'+file;
var src_t = window.s3_url+'viewer/content/thumb/'+file;
} else {
var src = '../viewer/content/'+file;
var src_t = '../viewer/content/thumb/'+file;
}
break;
}
if(file.includes('.mp4') || file.includes('.mov') || file.includes('.webm')) {
var html_file = '<video preload="auto" src="'+src+'#t=2" playsinline webkit-playsinline muted style="height: 100px;"></video>';
} else {
var html_file = '<img style="height: 100px;" src="'+src_t+'" onerror="this.src=\''+src+'\';this.onerror=\'\';" />';
}
html += '<div onclick="select_media_library_file(\''+file+'\',\''+type+'\',\''+from+'\',\''+target+'\',\''+id_vt+'\');" style="display:inline-block;position:relative;vertical-align:top;cursor:pointer;" class="file_media_library mb-2 ml-1 mr-1">'+html_file+'</div>';
});
}
$('#modal_media_library .modal-body').html(html);
}
});
}
window.open_modal_music_library = function (target) {
$('#modal_music_library .modal-body').empty();
$('#modal_music_library').modal('show');
$.ajax({
url: "ajax/get_music_library_files.php",
type: "POST",
data: {
id_virtualtour: id_virtualtour
},
async: true,
success: function (json) {
var html = '';
var files_array = JSON.parse(json);
if(files_array.length==0) {
html = "<p>"+window.backend_labels.no_files_msg+"</p>";
} else {
jQuery.each(files_array, function(index, file_t) {
var file = file_t.file;
var id_vt = file_t.id_vt;
if(window.s3_enabled==1 && id_vt!='') {
var src = window.s3_url+'viewer/content/'+file;
} else {
var src = '../viewer/content/'+file;
}
var file_name = file.split('.').slice(0, -1).join('.');
var name = '<span class="name_file noselect">'+file_name+'</span>';
var html_file = '<audio controls preload="auto" playsinline webkit-playsinline><source src="'+src+'" type="audio/mpeg"></audio>';
html += '<div style="display:inline-block;position:relative;vertical-align:top;" class="file_music_library col-md-4 mb-2">'+name+'<i onclick="select_music_library_file(\''+file+'\',\''+target+'\');" style="font-size: 12px;cursor: pointer" class="remove_file_music_library fas fa-check-circle"></i>'+html_file+'</div>';
});
}
$('#modal_music_library .modal-body').html(html);
}
});
}
window.select_music_library_file = function(file,target) {
var src = 'content/'+file;
$('#'+target).val(src);
$('#modal_music_library').modal('hide');
}
window.select_media_library_file = function(file,type,from,target,id_vt) {
switch(from) {
case 'media_library':
var src = 'media/'+file;
var src_h = 'media/'+file;
if(window.s3_enabled==1 && id_vt!='') {
src_h = window.s3_url+'viewer/media/'+file;
}
break;
case 'content':
var src = 'content/'+file;
var src_h = 'content/'+file;
if(window.s3_enabled==1 && id_vt!='') {
src_h = window.s3_url+'viewer/content/'+file;
}
break;
}
switch(type) {
case 'all':
switch(target) {
case 'html':
if($('#poi_content_html_sc').is(':visible')) {
window.poi_content_html_sc.session.insert(window.poi_content_html_sc.getCursorPosition(), src_h);
} else {
$('.input_lang[data-target-id="poi_content_html_sc"]').each(function() {
if($(this).is(':visible')) {
var lang = $(this).attr('data-lang');
window.poi_content_html_sc_lang[lang].session.insert(window.poi_content_html_sc_lang[lang].getCursorPosition(), src_h);
}
});
}
break;
case 'html_vt':
window.custom_vt_html.session.insert(window.custom_vt_html.getCursorPosition(), src_h);
break;
}
break;
case 'videos_transparent':
var exists_videos = $('#'+target).val();
var array_videos = exists_videos.split(",");
var mov_video = '', webm_video = '';
jQuery.each(array_videos, function(index_s, video_s) {
if(video_s.split('.').pop().toLowerCase()=='mov') {
mov_video = video_s;
}
if(video_s.split('.').pop().toLowerCase()=='webm') {
webm_video = video_s;
}
});
if(src.split('.').pop().toLowerCase()=='mov') {
mov_video = src;
}
if(src.split('.').pop().toLowerCase()=='webm') {
webm_video = src;
}
if(webm_video!='' && mov_video!='') {
var poi_embed_content = webm_video+','+mov_video;
} else if(webm_video!='' && mov_video=='') {
var poi_embed_content = webm_video;
} else if(webm_video=='' && mov_video!='') {
var poi_embed_content = mov_video;
}
if($('#'+target).is(':visible')) {
$('#'+target).val(poi_embed_content);
} else {
$('.input_lang[data-target-id="'+target+'"]').each(function() {
if($(this).is(':visible')) {
var lang = $(this).attr('data-lang');
$(this).val(poi_embed_content);
}
});
}
break;
default:
if($('#'+target).is(':visible')) {
$('#'+target).val(src);
} else {
$('.input_lang[data-target-id="'+target+'"]').each(function() {
if($(this).is(':visible')) {
var lang = $(this).attr('data-lang');
$(this).val(src);
}
});
}
break;
}
$('#modal_media_library').modal('hide');
if(window.pois[poi_index_edit].embed_type!='') {
switch(window.pois[poi_index_edit].embed_type) {
case 'image':
case 'video':
case 'video_chroma':
window.pois[poi_index_edit].embed_content = src;
break;
case 'videos_transparent':
window.pois[poi_index_edit].embed_content = poi_embed_content;
break;
}
render_poi(poi_id_edit,poi_index_edit);
}
}
window.close_modal = function (id) {
$('#'+id).modal('hide');
}
function change_rooms_order(array_rooms_priority) {
var array_rooms_priority = JSON.stringify(array_rooms_priority);
$.ajax({
url: "ajax/change_rooms_order.php",
type: "POST",
data: {
id_virtualtour: id_virtualtour,
array_rooms_priority: array_rooms_priority
},
async: false,
success: function (json) {
}
});
}
function change_maps_order(array_maps_priority) {
var array_maps_priority = JSON.stringify(array_maps_priority);
$.ajax({
url: "ajax/change_maps_order.php",
type: "POST",
data: {
id_virtualtour: id_virtualtour,
array_maps_priority: array_maps_priority
},
async: false,
success: function (json) {
}
});
}
function change_image_gallery_order(array_images_priority) {
var array_images_priority = JSON.stringify(array_images_priority);
$.ajax({
url: "ajax/change_image_gallery_order.php",
type: "POST",
data: {
id_virtualtour: id_virtualtour,
array_images_priority: array_images_priority
},
async: false,
success: function (json) {}
});
}
window.change_video_slides_order = function(array_slides_priority) {
var array_slides_priority = JSON.stringify(array_slides_priority);
$.ajax({
url: "ajax/change_video_slides_order.php",
type: "POST",
data: {
id_video: window.id_video,
array_slides_priority: array_slides_priority
},
async: false,
success: function (json) {}
});
}
function change_rooms_alt_order(array_images_priority) {
var array_images_priority = JSON.stringify(array_images_priority);
$.ajax({
url: "ajax/change_rooms_alt_order.php",
type: "POST",
data: {
id_room: window.id_room,
array_images_priority: array_images_priority
},
async: false,
success: function (json) {}
});
}
function change_image_product_order(array_images_priority) {
var array_images_priority = JSON.stringify(array_images_priority);
$.ajax({
url: "ajax/change_image_product_order.php",
type: "POST",
data: {
id_product: id_product,
array_images_priority: array_images_priority
},
async: false,
success: function (json) {}
});
}
function change_poi_image_gallery_order(array_images_priority) {
var array_images_priority = JSON.stringify(array_images_priority);
$.ajax({
url: "ajax/change_poi_image_gallery_order.php",
type: "POST",
data: {
id_poi: window.id_poi,
array_images_priority: array_images_priority
},
async: false,
success: function (json) {}
});
}
function change_poi_image_embed_gallery_order(array_images_priority) {
var array_images_priority = JSON.stringify(array_images_priority);
$.ajax({
url: "ajax/change_poi_image_embed_gallery_order.php",
type: "POST",
data: {
id_poi: window.id_poi,
array_images_priority: array_images_priority
},
async: false,
success: function (json) {}
});
}
function change_poi_image_object360_order(array_images_priority) {
var array_images_priority = JSON.stringify(array_images_priority);
$.ajax({
url: "ajax/change_poi_image_object360_order.php",
type: "POST",
data: {
id_poi: window.id_poi,
array_images_priority: array_images_priority
},
async: false,
success: function (json) {}
});
}
window.add_image_to_gallery = function(id_virtualtour,image) {
$.ajax({
url: "ajax/add_image_to_gallery.php",
type: "POST",
data: {
id_virtualtour: id_virtualtour,
image: image
},
async: true,
success: function (json) {
get_gallery_images(id_virtualtour);
}
});
}
window.add_image_to_product = function(id_product,image) {
$.ajax({
url: "ajax/add_image_to_product.php",
type: "POST",
data: {
id_product: id_product,
image: image
},
async: true,
success: function (json) {
get_product_images(id_product);
}
});
}
window.add_file_to_media_library = function(id_virtualtour,file) {
$.ajax({
url: "ajax/add_file_to_media_library.php",
type: "POST",
data: {
id_virtualtour: id_virtualtour,
file: file
},
async: true,
success: function (json) {
get_media_library_files(id_virtualtour);
}
});
}
window.add_file_to_music_library = function(id_virtualtour,file) {
$.ajax({
url: "ajax/add_file_to_music_library.php",
type: "POST",
data: {
id_virtualtour: id_virtualtour,
file: file
},
async: true,
success: function (json) {
get_music_library_files(id_virtualtour);
}
});
}
window.add_file_to_sound_library = function(id_virtualtour,file) {
$.ajax({
url: "ajax/add_file_to_sound_library.php",
type: "POST",
data: {
id_virtualtour: id_virtualtour,
file: file
},
async: true,
success: function (json) {
get_sound_library_files(id_virtualtour);
}
});
}
window.add_image_to_poi_gallery = function(id_poi,image) {
$.ajax({
url: "ajax/add_image_to_poi_gallery.php",
type: "POST",
data: {
id_poi: id_poi,
image: image
},
async: true,
success: function (json) {
get_poi_gallery_images(id_poi);
}
});
}
window.add_image_to_poi_embed_gallery = function(id_poi,image) {
$.ajax({
url: "ajax/add_image_to_poi_embed_gallery.php",
type: "POST",
data: {
id_poi: id_poi,
image: image
},
async: true,
success: function (json) {
get_poi_embed_gallery_images(id_poi);
}
});
}
window.add_image_to_poi_object360 = function(id_poi,image) {
$.ajax({
url: "ajax/add_image_to_poi_object360.php",
type: "POST",
data: {
id_poi: id_poi,
image: image
},
async: true,
success: function (json) {
get_poi_object360_images(id_poi);
}
});
}
window.add_image_to_icon = function(id_virtualtour,image) {
$.ajax({
url: "ajax/add_image_to_icon.php",
type: "POST",
data: {
id_virtualtour: id_virtualtour,
image: image
},
async: true,
success: function (json) {
get_icon_images(id_virtualtour);
}
});
}
window.add_image_to_icon_m = function(id_virtualtour,image,m) {
$.ajax({
url: "ajax/add_image_to_icon.php",
type: "POST",
data: {
id_virtualtour: id_virtualtour,
image: image
},
async: true,
success: function (json) {
get_icon_images_m(id_virtualtour,m);
}
});
}
window.edit_view_tooltip = function (index) {
if($('.lang_input_switcher').length) {
$('.lang_input_switcher').each(function() {
var elem_o = $(this).attr('data-elem');
var lang_o = $(this).attr('data-default-lang');
switch_input_language(lang_o,lang_o,elem_o);
});
}
var view_tooltip = window.rooms_alt_images[index].view_tooltip;
$('.input_lang[data-target-id="view_tooltip"]').val('');
jQuery.each(window.rooms_alt_images[index].array_lang, function(index_l,item_lang) {
$('.input_lang[data-target-id="view_tooltip"][data-lang="'+item_lang.language+'"]').val(item_lang.view_tooltip);
});
var auto_open = parseInt(window.rooms_alt_images[index].auto_open);
var from_hour = window.rooms_alt_images[index].from_hour;
var to_hour = window.rooms_alt_images[index].to_hour;
var auto_open = parseInt(window.rooms_alt_images[index].auto_open);
if(auto_open==1) {
$('#auto_open').prop('checked',true);
} else {
$('#auto_open').prop('checked',false);
}
$('#view_tooltip').val(view_tooltip);
$('#from_hour').val(from_hour);
$('#to_hour').val(to_hour);
$('#modal_view_tooltip #btn_save_view_tooltip').attr('onclick','save_view_tooltip('+index+')');
$('#modal_view_tooltip').modal("show");
}
window.edit_main_view_tooltip = function() {
$('#modal_view_tooltip_main').modal('show');
}
window.edit_image_gallery = function (index) {
if($('.lang_input_switcher').length) {
$('.lang_input_switcher').each(function() {
var elem_o = $(this).attr('data-elem');
var lang_o = $(this).attr('data-default-lang');
switch_input_language(lang_o,lang_o,elem_o);
});
}
var title = window.gallery_images[index].title;
$('#title').val(title);
$('.input_lang[data-target-id="title"]').val('');
jQuery.each(window.gallery_images[index].array_lang, function(index_l,item_lang) {
$('.input_lang[data-target-id="title"][data-lang="'+item_lang.language+'"]').val(item_lang.title);
});
var description = window.gallery_images[index].description;
$('#description').val(description);
$('.input_lang[data-target-id="description"]').val('');
jQuery.each(window.gallery_images[index].array_lang, function(index_l,item_lang) {
$('.input_lang[data-target-id="description"][data-lang="'+item_lang.language+'"]').val(item_lang.description);
});
$('#modal_caption #btn_save_caption').attr('onclick','save_gallery_caption('+index+')');
$('#modal_caption').modal("show");
}
window.edit_image_poi_gallery = function (index) {
var title = window.gallery_images[index].title;
var description = window.gallery_images[index].description;
$('#title').val(title);
$('#description').val(description);
$('#modal_caption #btn_save_caption').attr('onclick','save_poi_gallery_caption('+index+')');
$('#modal_caption').modal("show");
}
window.save_view_tooltip = function(index) {
$('#modal_view_tooltip #btn_save_view_tooltip').addClass('disabled');
var view_tooltip = $('#view_tooltip').val();
var array_lang = {};
array_lang['view_tooltip'] = {};
$('.input_lang[data-target-id="view_tooltip"]').each(function() {
var lang = $(this).attr('data-lang');
var value = $(this).val();
array_lang['view_tooltip'][lang]=value;
});
var auto_open = ($('#auto_open').is(':checked')) ? 1 : 0;
var from_hour = $('#from_hour').val();
var to_hour = $('#to_hour').val();
var id = window.rooms_alt_images[index].id;
var array_lang_json = JSON.stringify(array_lang);
$.ajax({
url: "ajax/save_view_tooltip.php",
type: "POST",
data: {
id: id,
id_room: window.id_room,
view_tooltip: view_tooltip,
auto_open: auto_open,
from_hour: from_hour,
to_hour: to_hour,
array_lang: array_lang_json
},
async: true,
success: function (json) {
window.rooms_alt_images[index].view_tooltip = view_tooltip;
window.rooms_alt_images[index].array_lang=[];
$('.input_lang[data-target-id="view_tooltip"]').each(function() {
var lang = $(this).attr('data-lang');
var value = $(this).val();
var tmp = {};
tmp.id_room_alt=id.toString();
tmp.language=lang;
tmp.view_tooltip=value;
window.rooms_alt_images[index].array_lang.push(tmp);
});
window.rooms_alt_images[index].auto_open = auto_open;
jQuery.each(window.rooms_alt_images, function(index_r, image_r) {
if(index!=index_r) {
window.rooms_alt_images[index_r].auto_open = 0;
}
});
$('#modal_view_tooltip #btn_save_view_tooltip').removeClass('disabled');
$('#modal_view_tooltip').modal("hide");
}
});
}
window.save_gallery_caption = function(index) {
$('#modal_caption #btn_save_caption').addClass('disabled');
var title = $('#title').val();
var description = $('#description').val();
var array_lang = {};
array_lang['title'] = {};
$('.input_lang[data-target-id="title"]').each(function() {
var lang = $(this).attr('data-lang');
var value = $(this).val();
array_lang['title'][lang]=value;
});
array_lang['description'] = {};
$('.input_lang[data-target-id="description"]').each(function() {
var lang = $(this).attr('data-lang');
var value = $(this).val();
array_lang['description'][lang]=value;
});
var id = window.gallery_images[index].id;
var array_lang_json = JSON.stringify(array_lang);
$.ajax({
url: "ajax/save_gallery_caption.php",
type: "POST",
data: {
id: id,
title: title,
description: description,
array_lang: array_lang_json
},
async: true,
success: function (json) {
window.gallery_images[index].title = title;
window.gallery_images[index].description = description;
window.gallery_images[index].array_lang=[];
$('.input_lang[data-target-id="title"]').each(function() {
var lang = $(this).attr('data-lang');
var value = $(this).val();
var tmp = {};
tmp.id_gallery=id.toString();
tmp.language=lang;
tmp.title=value;
tmp.description=$('.input_lang[data-target-id="description"][data-lang="'+lang+'"]').val();
window.gallery_images[index].array_lang.push(tmp);
});
$('#modal_caption #btn_save_caption').removeClass('disabled');
$('#modal_caption').modal("hide");
}
});
}
window.save_poi_gallery_caption = function(index) {
$('#modal_caption #btn_save_caption').addClass('disabled');
var title = $('#title').val();
var description = $('#description').val();
var id = window.gallery_images[index].id;
$.ajax({
url: "ajax/save_poi_gallery_caption.php",
type: "POST",
data: {
id: id,
title: title,
description: description
},
async: true,
success: function (json) {
window.gallery_images[index].title = title;
window.gallery_images[index].description = description;
$('#modal_caption #btn_save_caption').removeClass('disabled');
$('#modal_caption').modal("hide");
}
});
}
window.remove_image_room_alt = function(id) {
var retVal = confirm(window.backend_labels.delete_sure_msg);
if( retVal == true ) {
$.ajax({
url: "ajax/delete_image_to_room_alt.php",
type: "POST",
data: {
id: id
},
async: false,
success: function (json) {
get_rooms_alt_images(window.id_room);
}
});
} else {
return false;
}
}
window.remove_image_gallery = function(id) {
var retVal = confirm(window.backend_labels.delete_sure_msg);
if( retVal == true ) {
$.ajax({
url: "ajax/delete_image_to_gallery.php",
type: "POST",
data: {
id: id
},
async: false,
success: function (json) {
if(window.count_gallery_images_create==-1) {
get_gallery_images(window.id_virtualtour);
} else {
location.href='index.php?p=gallery';
}
}
});
} else {
return false;
}
}
window.remove_image_product = function(id) {
var retVal = confirm(window.backend_labels.delete_sure_msg);
if( retVal == true ) {
$.ajax({
url: "ajax/delete_image_to_product.php",
type: "POST",
data: {
id: id
},
async: false,
success: function (json) {
get_product_images(window.id_virtualtour);
}
});
} else {
return false;
}
}
window.remove_media_library_file = function(id) {
var retVal = confirm(window.backend_labels.delete_sure_msg);
if( retVal == true ) {
$.ajax({
url: "ajax/delete_file_to_media_library.php",
type: "POST",
data: {
id: id
},
async: false,
success: function (json) {
get_media_library_files(window.id_virtualtour);
}
});
} else {
return false;
}
}
window.remove_music_library_file = function(id) {
var retVal = confirm(window.backend_labels.delete_sure_msg);
if( retVal == true ) {
$.ajax({
url: "ajax/delete_file_to_music_library.php",
type: "POST",
data: {
id: id
},
async: false,
success: function (json) {
get_music_library_files(window.id_virtualtour);
}
});
} else {
return false;
}
}
window.remove_sound_library_file = function(id) {
var retVal = confirm(window.backend_labels.delete_sure_msg);
if( retVal == true ) {
$.ajax({
url: "ajax/delete_file_to_sound_library.php",
type: "POST",
data: {
id: id
},
async: false,
success: function (json) {
get_sound_library_files(window.id_virtualtour);
}
});
} else {
return false;
}
}
window.remove_image_poi_gallery = function(id) {
var retVal = confirm(window.backend_labels.delete_sure_msg);
if( retVal == true ) {
$.ajax({
url: "ajax/delete_image_to_poi_gallery.php",
type: "POST",
data: {
id: id
},
async: false,
success: function (json) {
get_poi_gallery_images(window.id_poi);
}
});
} else {
return false;
}
}
window.remove_image_poi_embed_gallery = function(id) {
var retVal = confirm(window.backend_labels.delete_sure_msg);
if( retVal == true ) {
$.ajax({
url: "ajax/delete_image_to_poi_embed_gallery.php",
type: "POST",
data: {
id: id
},
async: false,
success: function (json) {
get_poi_embed_gallery_images(window.id_poi);
}
});
} else {
return false;
}
}
window.remove_image_poi_object360 = function(id) {
var retVal = confirm(window.backend_labels.delete_sure_msg);
if( retVal == true ) {
$.ajax({
url: "ajax/delete_image_to_poi_object360.php",
type: "POST",
data: {
id: id
},
async: false,
success: function (json) {
get_poi_object360_images(window.id_poi);
}
});
} else {
return false;
}
}
window.remove_image_icon = function(id) {
var retVal = confirm(window.backend_labels.delete_sure_msg);
if( retVal == true ) {
$.ajax({
url: "ajax/delete_image_to_icon.php",
type: "POST",
data: {
id: id
},
async: false,
success: function (json) {
get_icon_images(window.id_virtualtour);
}
});
} else {
return false;
}
}
window.check_plan = function(id_user,object) {
$.ajax({
url: "ajax/check_plan.php",
type: "POST",
data: {
id_user: id_user,
object: object
},
async: false,
success: function (json) {
var rsp = JSON.parse(json);
window.can_create = rsp.can_create;
}
});
}
window.set_expiring_dates = function() {
$('#btn_expires').addClass('disabled');
var start_date = $('#start_date').val();
var end_date = $('#end_date').val();
var start_url = $('#start_url').val();
var end_url = $('#end_url').val();
$.ajax({
url: "ajax/set_expiring_dates.php",
type: "POST",
data: {
id_virtualtour: window.id_virtualtour,
start_date: start_date,
end_date: end_date,
start_url: start_url,
end_url: end_url
},
async: true,
success: function (json) {
$('#btn_expires').removeClass('disabled');
}
});
}
window.set_status_vt = function(status) {
$.ajax({
url: "ajax/set_status_vt.php",
type: "POST",
data: {
id_virtualtour: window.id_virtualtour,
status: status
},
async: false,
success: function (json) {}
});
}
window.set_show_in_first_page = function(show_in_first_page,w) {
switch(w) {
case 'vt':
case 'landing':
var id = window.id_virtualtour;
break;
case 'globe':
var id = window.id_globe;
break;
case 'showcase':
var id = window.id_showcase;
break;
}
$.ajax({
url: "ajax/set_show_in_first_page.php",
type: "POST",
data: {
id: id,
w: w,
show_in_first_page: show_in_first_page
},
async: false,
success: function (json) {}
});
}
window.set_password_vt = function() {
var password = $('#vt_password').val();
var password_title = $('#vt_password_title').val();
var password_description = $('#vt_password_description').val();
var protect_mc_form = $('#protect_mc_form').val();
var protect_type = $('#protect_type option:selected').attr('id');
var protect_send_email = ($('#protect_send_email').is(':checked')) ? 1 : 0;
var protect_email = $('#protect_email').val();
var protect_remember = ($('#protect_remember').is(':checked')) ? 1 : 0;
$('#btn_protect').addClass('disabled');
$.ajax({
url: "ajax/set_password_vt.php",
type: "POST",
data: {
id_virtualtour: window.id_virtualtour,
password: password,
password_title: password_title,
password_description: password_description,
protect_type: protect_type,
protect_send_email: protect_send_email,
protect_email: protect_email,
protect_remember: protect_remember,
protect_mc_form: protect_mc_form
},
async: true,
success: function () {
$('#btn_protect').removeClass('disabled');
}
});
}
window.check_license = function() {
$('#btn_check_license').addClass("disabled");
var purchase_code = $('#purchase_code').val();
$.ajax({
url: '../resp.json',
type: "POST",
data: {
server_name: window.server_name,
server_ip: window.server_ip,
purchase_code: purchase_code
},
async: true,
success: function (json) {
var rsp = JSON.parse(json);
switch (rsp.status) {
case 'ok':
$('#license_status').html("<i style='color: green;' class=\"fas fa-circle\"></i> "+rsp.msg);
var license = rsp.license;
var license2 = rsp.license2;
if(rsp.msg.indexOf('Extended') >= 0){
$('#registration_li').removeClass('d-none');
$('#payments_li').removeClass('d-none');
$('#upgrade_extended').addClass('d-none');
}
if(rsp.msg.indexOf('Regular') >= 0){
$('#registration_li').addClass('d-none');
$('#payments_li').addClass('d-none');
$('#upgrade_extended').removeClass('d-none');
}
if(rsp.msg.indexOf('Invalid') >= 0){
$('#purchase_code').val('')
purchase_code = '';
license = '';
license2 = '';
}
if(rsp.msg.indexOf('already registered') >= 0){
$('#purchase_code').val('')
purchase_code = '';
license = '';
license2 = '';
}
break;
case 'error':
$('#license_status').html("<i style='color: red;' class=\"fas fa-circle\"></i> "+rsp.msg);
var license = '';
var license2 = '';
break;
}
$('#btn_check_license').removeClass("disabled");
$.ajax({
url: "ajax/save_lic.php",
type: "POST",
data: {
purchase_code: purchase_code,
license: license,
license2: license2
},
async: true,
success: function () {
if(window.input_license==1 && license!='') {
window.settings_need_save=false;
location.href='index.php';
}
}
});
}
});
}
window.set_session_vt = function(id) {
$.ajax({
url: "ajax/set_session_vt.php",
type: "POST",
data: {
id_virtualtour: id
},
async: true,
success: function (json) {
var rsp = JSON.parse(json);
if (rsp.status == "ok") {
var url = window.location.href;
url = removeParam('id_vt',url);
url = removeParam('id_room',url);
location.href = url;
}
}
});
}
window.show_info_edit_room = function(tab) {
switch(tab) {
case 'view':
$('#initial_position_div').show();
$('#north_div').hide();
break;
case 'positions':
$('#initial_position_div').hide();
$('#north_div').hide();
break;
case 'north':
$('#initial_position_div').hide();
$('#north_div').show();
break;
case 'effects':
case 'bulk':
$('#initial_position_div').hide();
$('#north_div').hide();
break;
}
}
window.set_session_tab = function(page,tab) {
if(page=='edit_room_preview') {
show_info_edit_room(tab);
}
$.ajax({
url: "ajax/set_session_tab.php",
type: "POST",
data: {
page: page,
tab: tab
},
async: true,
success: function (json) {}
});
}
window.set_session_theme_color = function(theme_color,sidebar_color_1,sidebar_color_2,theme_color_dark,sidebar_color_1_dark,sidebar_color_2_dark) {
if(theme_color!='') {
$.ajax({
url: "ajax/set_session_theme_color.php",
type: "POST",
data: {
theme_color: theme_color,
sidebar_color_1: sidebar_color_1,
sidebar_color_2: sidebar_color_2,
theme_color_dark: theme_color_dark,
sidebar_color_1_dark: sidebar_color_1_dark,
sidebar_color_2_dark: sidebar_color_2_dark
},
async: true,
success: function (json) {
var current_href = $('#css_theme').attr("href").split('?')[0];
$('#css_theme').attr("href", current_href + "?v=" + new Date().getMilliseconds());
var current_href = $('#css_theme_dark').attr("href").split('?')[0];
$('#css_theme_dark').attr("href", current_href + "?v=" + new Date().getMilliseconds());
}
});
}
}
window.change_virtualtour = function() {
var id = $('#virtualtour_selector option:selected').attr('id');
$.ajax({
url: "ajax/set_session_vt.php",
type: "POST",
data: {
id_virtualtour: id
},
async: true,
success: function (json) {
var rsp = JSON.parse(json);
if (rsp.status == "ok") {
var url = window.location.href;
url = removeParam('id_vt',url);
url = removeParam('id_room',url);
url = url.replace(/#\s*$/, "");
location.href = url;
return false;
}
}
});
}
window.change_protect_type = function () {
var protect_type = $('#protect_type option:selected').attr('id');
switch (protect_type) {
case 'none':
$('#passcode_title').parent().parent().removeClass('d-none');
$('#passcode_description').parent().parent().removeClass('d-none');
$('#passcode_code').parent().parent().removeClass('d-none');
$('#protect_send_email').parent().parent().removeClass('d-none');
$('#protect_email').parent().parent().removeClass('d-none');
$('#protect_mc_form').parent().parent().addClass('d-none');
$('#passcode_title').prop("disabled",true);
$('#passcode_description').prop("disabled",true);
$('#passcode_code').prop("disabled",true);
$('#protect_send_email').prop("disabled",true);
$('#protect_email').prop("disabled",true);
$('#protect_remember').prop("disabled",true);
break;
case 'passcode':
$('#passcode_title').parent().parent().removeClass('d-none');
$('#passcode_description').parent().parent().removeClass('d-none');
$('#passcode_code').parent().parent().removeClass('d-none');
$('#protect_send_email').parent().parent().removeClass('d-none');
$('#protect_email').parent().parent().removeClass('d-none');
$('#protect_mc_form').parent().parent().addClass('d-none');
$('#passcode_title').prop("disabled",false);
$('#passcode_description').prop("disabled",false);
$('#passcode_code').prop("disabled",false);
$('#protect_send_email').prop("disabled",true);
$('#protect_email').prop("disabled",true);
$('#protect_remember').prop("disabled",false);
break;
case 'leads':
$('#passcode_title').parent().parent().removeClass('d-none');
$('#passcode_description').parent().parent().removeClass('d-none');
$('#passcode_code').parent().parent().removeClass('d-none');
$('#protect_send_email').parent().parent().removeClass('d-none');
$('#protect_email').parent().parent().removeClass('d-none');
$('#protect_mc_form').parent().parent().addClass('d-none');
$('#passcode_title').prop("disabled",false);
$('#passcode_description').prop("disabled",false);
$('#passcode_code').prop("disabled",true);
$('#protect_send_email').prop("disabled",false);
$('#protect_email').prop("disabled",false);
$('#protect_remember').prop("disabled",false);
break;
case 'mailchimp':
$('#passcode_title').parent().parent().addClass('d-none');
$('#passcode_description').parent().parent().addClass('d-none');
$('#passcode_code').parent().parent().addClass('d-none');
$('#protect_send_email').parent().parent().addClass('d-none');
$('#protect_email').parent().parent().addClass('d-none');
$('#protect_mc_form').parent().parent().removeClass('d-none');
$('#passcode_code').prop('disabled',true);
$('#passcode_title').prop('disabled',false);
$('#passcode_description').prop('disabled',false);
$('#protect_send_email').prop('disabled',false);
$('#protect_email').prop('disabled',false);
$('#protect_remember').prop('disabled',false);
break;
}
}
window.change_type_protection = function() {
var protect_type = $('#protect_type option:selected').attr('id');
switch (protect_type) {
case 'none':
$('#vt_password_title').parent().parent().removeClass('d-none');
$('#vt_password_description').parent().parent().removeClass('d-none');
$('#vt_password').parent().parent().removeClass('d-none');
$('#protect_send_email').parent().parent().removeClass('d-none');
$('#protect_email').parent().parent().removeClass('d-none');
$('#protect_mc_form').parent().parent().addClass('d-none');
$('#vt_password').prop('disabled',true);
$('#vt_password_title').prop('disabled',true);
$('#vt_password_description').prop('disabled',true);
$('#protect_send_email').prop('disabled',true);
$('#protect_email').prop('disabled',true);
$('#protect_remember').prop('disabled',true);
break;
case 'password':
$('#vt_password_title').parent().parent().removeClass('d-none');
$('#vt_password_description').parent().parent().removeClass('d-none');
$('#vt_password').parent().parent().removeClass('d-none');
$('#protect_send_email').parent().parent().removeClass('d-none');
$('#protect_email').parent().parent().removeClass('d-none');
$('#protect_mc_form').parent().parent().addClass('d-none');
$('#vt_password').prop('disabled',false);
$('#vt_password_title').prop('disabled',false);
$('#vt_password_description').prop('disabled',false);
$('#protect_send_email').prop('disabled',true);
$('#protect_email').prop('disabled',true);
$('#protect_remember').prop('disabled',false);
break;
case 'lead':
$('#vt_password_title').parent().parent().removeClass('d-none');
$('#vt_password_description').parent().parent().removeClass('d-none');
$('#vt_password').parent().parent().removeClass('d-none');
$('#protect_send_email').parent().parent().removeClass('d-none');
$('#protect_email').parent().parent().removeClass('d-none');
$('#protect_mc_form').parent().parent().addClass('d-none');
$('#vt_password').prop('disabled',true);
$('#vt_password_title').prop('disabled',false);
$('#vt_password_description').prop('disabled',false);
$('#protect_send_email').prop('disabled',false);
$('#protect_email').prop('disabled',false);
$('#protect_remember').prop('disabled',false);
break;
case 'mailchimp':
$('#vt_password_title').parent().parent().addClass('d-none');
$('#vt_password_description').parent().parent().addClass('d-none');
$('#vt_password').parent().parent().addClass('d-none');
$('#protect_send_email').parent().parent().addClass('d-none');
$('#protect_email').parent().parent().addClass('d-none');
$('#protect_mc_form').parent().parent().removeClass('d-none');
$('#vt_password').prop('disabled',true);
$('#vt_password_title').prop('disabled',false);
$('#vt_password_description').prop('disabled',false);
$('#protect_send_email').prop('disabled',false);
$('#protect_email').prop('disabled',false);
$('#protect_remember').prop('disabled',false);
break;
}
}
function removeParam(key, sourceURL) {
var rtn = sourceURL.split("?")[0],
param,
params_arr = [],
queryString = (sourceURL.indexOf("?") !== -1) ? sourceURL.split("?")[1] : "";
if (queryString !== "") {
params_arr = queryString.split("&");
for (var i = params_arr.length - 1; i >= 0; i -= 1) {
param = params_arr[i].split("=")[0];
if (param === key) {
params_arr.splice(i, 1);
}
}
rtn = rtn + "?" + params_arr.join("&");
}
return rtn;
}
window.adjust_ratio_hfov = function (id_panorama,viewer,hfov,min_hfov,max_hfov) {
var c_w = parseFloat($('#'+id_panorama).css('width').replace('px',''));
var c_h = parseFloat($('#'+id_panorama).css('height').replace('px',''));
var ratio_panorama = c_w / c_h;
var ratio_hfov = 1.7771428571428571 / ratio_panorama;
var min_hfov_t = min_hfov / ratio_hfov;
var max_hfov_t = max_hfov / ratio_hfov;
var hfov_t = hfov / ratio_hfov;
viewer.setHfovBounds([min_hfov_t,max_hfov_t]);
viewer.setHfov(hfov_t,false);
}
window.get_statistics = function (elem) {
if(location.href.includes('edit_user')) {
var id_virtualtour = null;
var id_user = window.id_user_edit;
} else {
var id_virtualtour = window.id_virtualtour;
var id_user = null;
}
$.ajax({
url: "ajax/get_statistics.php",
type: "POST",
data: {
id_virtualtour: id_virtualtour,
id_user: id_user,
elem: elem
},
async: true,
success: function (json) {
var rsp = JSON.parse(json);
if($('body').hasClass('dark_mode')) {
var label_color = '#FFFFFFA8';
} else {
var label_color = '';
}
switch (elem) {
case 'chart_visitor_vt':
var data = rsp.data;
if($('body').hasClass('dark_mode')) {
Highcharts.stockChart('chart_visitor_vt', {
tooltip: {
backgroundColor: 'rgba(0, 0, 0, 0.85)',
style: {
color: '#F0F0F0'
},
xDateFormat: '%e %B %Y',
pointFormatter: function() {
var point = this;
return '<span style="color:' + point.color + '">\u25CF</span> <b>' + point.y.toFixed(0) + '</b>';
}
},
xAxis: {
gridLineColor: '#707073',
labels: {
style: {
color: '#E0E0E3'
}
},
lineColor: '#707073',
minorGridLineColor: '#505053',
tickColor: '#707073',
title: {
style: {
color: '#A0A0A3'
}
}
},
yAxis: {
gridLineColor: '#707073',
labels: {
style: {
color: '#E0E0E3'
}
},
lineColor: '#707073',
minorGridLineColor: '#505053',
tickColor: '#707073',
tickWidth: 1,
title: {
style: {
color: '#A0A0A3'
}
},
opposite:false
},
chart: {
backgroundColor: {
linearGradient: { x1: 0, y1: 0, x2: 1, y2: 1 },
stops: [
[0, '#2a2a2b'],
[1, '#3e3e40']
]
},
plotBorderColor: '#606063',
height: 400,
},
title: {
text: ''
},
subtitle: {
text: ''
},
rangeSelector: {
buttonTheme: {
fill: '#505053',
stroke: '#000000',
style: {
color: '#CCC'
},
states: {
hover: {
fill: '#707073',
stroke: '#000000',
style: {
color: 'white'
}
},
select: {
fill: '#000003',
stroke: '#000000',
style: {
color: 'white'
}
}
}
},
inputBoxBorderColor: '#505053',
inputStyle: {
backgroundColor: '#333',
color: 'silver'
},
labelStyle: {
color: 'silver'
},
inputDateFormat: '%d/%m/%Y',
selected: 4,
buttons: [{
type: 'day',
count: 7,
text: '1W',
},{
type: 'month',
count: 1,
text: '1M',
}, {
type: 'month',
count: 3,
text: '3M'
}, {
type: 'month',
count: 6,
text: '6M'
}, {
type: 'year',
count: 1,
text: '1A'
}, {
type: 'all',
text: 'ALL'
}]
},
credits: {
style: {
color: '#2a2a2b'
}
},
labels: {
style: {
color: '#707073'
}
},
drilldown: {
activeAxisLabelStyle: {
color: '#F0F0F3'
},
activeDataLabelStyle: {
color: '#F0F0F3'
}
},
navigation: {
buttonOptions: {
symbolStroke: '#DDDDDD',
theme: {
fill: '#505053'
}
}
},
navigator: {
handles: {
backgroundColor: '#666',
borderColor: '#AAA'
},
outlineColor: '#CCC',
maskFill: 'rgba(255,255,255,0.1)',
series: {
color: '#7798BF',
lineColor: '#A6C7ED'
},
xAxis: {
gridLineColor: '#505053'
}
},
scrollbar: {
barBackgroundColor: '#808083',
barBorderColor: '#808083',
buttonArrowColor: '#CCC',
buttonBackgroundColor: '#606063',
buttonBorderColor: '#606063',
rifleColor: '#FFF',
trackBackgroundColor: '#404043',
trackBorderColor: '#404043'
},
plotOptions: {
series: {
color: window.theme_color,
dataGrouping: {
approximation: "sum",
units: [
['day', [1]],
['week', [1]],
['month', [1]],
],
groupPixelWidth: 100
}
}
},
series: [{
name: '',
data: data,
type: 'areaspline',
threshold: null,
tooltip: {
valueDecimals: 0
}
}],
responsive: {
rules: [{
condition: {
maxWidth: 500
},
chartOptions: {
chart: {
height: 300
},
subtitle: {
text: null
},
navigator: {
enabled: false
}
}
}]
}
});
Highcharts.setOptions(Highcharts.theme);
} else {
Highcharts.stockChart('chart_visitor_vt', {
tooltip: {
xDateFormat: '%e %B %Y',
pointFormatter: function() {
var point = this;
return '<span style="color:' + point.color + '">\u25CF</span> <b>' + point.y.toFixed(0) + '</b>';
}
},
yAxis: {
opposite:false
},
chart: {
height: 400,
},
title: {
text: ''
},
subtitle: {
text: ''
},
rangeSelector: {
inputDateFormat: '%d/%m/%Y',
selected: 4,
buttons: [{
type: 'day',
count: 7,
text: '1W',
},{
type: 'month',
count: 1,
text: '1M',
}, {
type: 'month',
count: 3,
text: '3M'
}, {
type: 'month',
count: 6,
text: '6M'
}, {
type: 'year',
count: 1,
text: '1A'
}, {
type: 'all',
text: 'ALL'
}]
},
plotOptions: {
series: {
color: window.theme_color,
dataGrouping: {
approximation: "sum",
units: [
['day', [1]],
['week', [1]],
['month', [1]],
],
groupPixelWidth: 100
}
}
},
series: [{
name: '',
data: data,
type: 'areaspline',
threshold: null,
tooltip: {
valueDecimals: 0
}
}],
responsive: {
rules: [{
condition: {
maxWidth: 500
},
chartOptions: {
chart: {
height: 300
},
subtitle: {
text: null
},
navigator: {
enabled: false
}
}
}]
}
});
}
break;
case 'chart_rooms_access':
var num_rooms = rsp.data.length;
new Chart(document.getElementById("chart_rooms_access"), {
type: 'horizontalBar',
data: {
labels: rsp.labels,
datasets: [{
data: rsp.data,
backgroundColor: window.theme_color,
borderColor: window.theme_color,
fill: false
}]
},
options: {
maintainAspectRatio: false,
legend: {
display: false
},
scales: {
xAxes: [{
ticks: {
fontColor: label_color,
beginAtZero: true
}
}],
yAxes: [{
ticks: {
fontColor: label_color
}
}]
}
}
});
var height_chart = (num_rooms*20)+40;
$('#chart_rooms_access').css('height',height_chart+'px');
break;
case 'chart_rooms_time':
var num_rooms = rsp.data.length;
new Chart(document.getElementById("chart_rooms_time"), {
type: 'horizontalBar',
data: {
labels: rsp.labels,
datasets: [{
data: rsp.data,
backgroundColor: window.theme_color,
borderColor: window.theme_color,
fill: false
}]
},
options: {
maintainAspectRatio: false,
legend: {
display: false
},
scales: {
xAxes: [{
ticks: {
fontColor: label_color,
beginAtZero: true
}
}],
yAxes: [{
ticks: {
fontColor: label_color
}
}]
}
}
});
var height_chart = (num_rooms*20)+40;
$('#chart_rooms_time').css('height',height_chart+'px');
break;
case 'chart_poi_views':
var total_access = rsp.total_poi;
var html_pois = '';
jQuery.each(rsp.pois, function(index, poi) {
var room = poi.room;
var type = poi.type;
var content = poi.content;
var params = poi.params;
content = $($.parseHTML(content)).text();
switch (type) {
case 'image':
type = window.backend_labels.image;
type = type.substr(0,1).toUpperCase()+type.substr(1);
var name_poi = room+" - <b>"+type+"</b> - <i style='font-size:10px;'>"+content+"</i>";
break;
case 'video':
type = window.backend_labels.video;
type = type.substr(0,1).toUpperCase()+type.substr(1);
var name_poi = room+" - <b>"+type+"</b> - <i style='font-size:10px;'>"+content+"</i>";
break;
case 'video360':
type = window.backend_labels.video360;
type = type.substr(0,1).toUpperCase()+type.substr(1);
var name_poi = room+" - <b>"+type+"</b> - <i style='font-size:10px;'>"+content+"</i>";
break;
case 'download':
type = window.backend_labels.download;
type = type.substr(0,1).toUpperCase()+type.substr(1);
var name_poi = room+" - <b>"+type+"</b> - <i style='font-size:10px;'>"+content+"</i>";
break;
case 'gallery':
type = window.backend_labels.image_gallery;
type = type.substr(0,1).toUpperCase()+type.substr(1);
var name_poi = room+" - <b>"+type+"</b>";
break;
case 'audio':
type = window.backend_labels.audio;
type = type.substr(0,1).toUpperCase()+type.substr(1);
var name_poi = room+" - <b>"+type+"</b> - <i style='font-size:10px;'>"+content+"</i>";
break;
case 'link':
type = window.backend_labels.link;
if(content.length>100) {
content = content.substring(0, 100)+"...";
}
type = type.substr(0,1).toUpperCase()+type.substr(1);
var name_poi = room+" - <b>"+type+"</b> - <i style='font-size:10px;'>"+content+"</i>";
break;
case 'pdf':
type = window.backend_labels.pdf;
if(content.length>100) {
content = content.substring(0, 100)+"...";
}
type = type.substr(0,1).toUpperCase()+type.substr(1);
var name_poi = room+" - <b>"+type+"</b> - <i style='font-size:10px;'>"+content+"</i>";
break;
case 'pointclouds':
type = window.backend_labels.pointclouds;
if(content.length>100) {
content = content.substring(0, 100)+"...";
}
type = type.substr(0,1).toUpperCase()+type.substr(1);
var name_poi = room+" - <b>"+type+"</b> - <i style='font-size:10px;'>"+content+"</i>";
break;
case 'link_ext':
type = window.backend_labels.link_ext;
type = type.substr(0,1).toUpperCase()+type.substr(1);
var name_poi = room+" - <b>"+type+"</b> - <i style='font-size:10px;'>"+content+"</i>";
break;
case 'html':
type = window.backend_labels.html;
if(content.length>100) {
content = content.substring(0, 100)+"...";
}
type = type.substr(0,1).toUpperCase()+type.substr(1);
var name_poi = room+" - <b>"+type+"</b> - <i style='font-size:10px;'>"+content+"</i>";
break;
case 'html_sc':
type = window.backend_labels.html_sc;
if(content.length>100) {
content = content.substring(0, 100)+"...";
}
type = type.substr(0,1).toUpperCase()+type.substr(1);
var name_poi = room+" - <b>"+type+"</b> - <i style='font-size:10px;'>"+content+"</i>";
break;
case 'form':
type = window.backend_labels.form;
content = JSON.parse(content)[0].title;
type = type.substr(0,1).toUpperCase()+type.substr(1);
var name_poi = room+" - <b>"+type+"</b> - <i style='font-size:10px;'>"+content+"</i>";
break;
case 'google_maps':
type = window.backend_labels.google_maps;
type = type.substr(0,1).toUpperCase()+type.substr(1);
var name_poi = room+" - <b>"+type+"</b>";
break;
case 'object360':
type = window.backend_labels.object360;
type = type.substr(0,1).toUpperCase()+type.substr(1);
var name_poi = room+" - <b>"+type+"</b>";
break;
case 'object3d':
type = window.backend_labels.object3d;
type = type.substr(0,1).toUpperCase()+type.substr(1);
var name_poi = room+" - <b>"+type+"</b>";
break;
case 'lottie':
var name_poi = room+" - <b>Lottie</b>";
break;
case 'product':
type = window.backend_labels.product;
type = type.substr(0,1).toUpperCase()+type.substr(1);
var name_poi = room+" - <b>"+type+"</b> - <i style='font-size:10px;'>"+content+"</i>";
break;
case 'callout':
type = window.backend_labels.callout;
type = type.substr(0,1).toUpperCase()+type.substr(1);
try {
var json = JSON.parse(params);
content = json.title;
} catch (e) {
var content = '';
}
var name_poi = room+" - <b>"+type+"</b> - <i style='font-size:10px;'>"+content+"</i>";
break;
}
var count = poi.access_count;
var perc = count / total_access * 100;
perc = Math.round(perc);
html_pois += '<h4 style="margin-bottom:1px;" class="small font-weight-bold">'+name_poi+' <span class="float-right"><b>'+count+'</b>/'+total_access+'</span></h4>\n' +
' <div class="progress mb-2">\n' +
' <div class="progress-bar bg-primary" role="progressbar" style="width: '+perc+'%" aria-valuenow="'+perc+'" aria-valuemin="0" aria-valuemax="100"></div>\n' +
' </div>';
});
$('#chart_poi_views').html(html_pois);
break;
case 'chart_time_slot':
new Chart(document.getElementById("chart_time_slot"), {
type: 'doughnut',
data: {
labels: rsp.labels,
datasets: [{
data: rsp.data,
backgroundColor: [
'rgb(0, 204, 204)',
'rgb(255, 128, 0)',
'rgb(255, 205, 86)',
'rgb(0, 0, 102)'
],
hoverOffset: 30,
fill: false
}]
},
options: {
elements: {
arc: {
borderWidth: 0
}
},
aspectRatio: 1.5,
legend: {
display: true,
labels: {
fontColor: label_color
}
},
tooltips: {
callbacks: {
label: function(tooltipItem, data) {
var value = data.datasets[0].data[tooltipItem.index];
return value + " %";
}
}
}
}
});
break;
}
}
});
}
window.save_landing = function(id,html) {
$.ajax({
url: "../../ajax/save_landing.php",
type: "POST",
data: {
id_virtualtour: id,
html: html
},
async: true,
success: function (json) {
var rsp = JSON.parse(json);
if (rsp.status == "ok") {
$('#landing_saving').hide();
$('#landing_editor').show();
}
}
});
}
window.save_info = function(id,html,lang) {
$.ajax({
url: "../../ajax/save_info.php",
type: "POST",
data: {
id_virtualtour: id,
html: html,
lang: lang
},
async: true,
success: function (json) {
var rsp = JSON.parse(json);
if (rsp.status == "ok") {
$('#info_saving').hide();
if(lang=='') {
$('#info_editor').show();
} else {
$('#info_editor_'+lang).show();
}
}
}
});
}
window.change_user_role = function () {
var role = $('#role option:selected').attr('id');
if(role=='editor') {
$('.stats_div').hide();
$('.plan_div').hide();
$('.assign_vt_div').show();
} else {
$('.stats_div').show();
$('.plan_div').show();
$('.assign_vt_div').hide();
}
}
window.check_multires_req = function () {
$('#btn_check_multires_req').addClass('disabled');
var multires = $('#multires option:selected').attr('id');
var multires_cloud_url = $('#multires_cloud_url').val();
switch(multires) {
case 'local':
var url = '../services/generate_multires.php';
break;
case 'cloud':
var url = '../services/generate_multires_cloud.php';
break;
}
$.ajax({
url: url,
type: "GET",
data: {
check_req: 1,
multires_cloud_url: multires_cloud_url
},
async: true,
success: function (json) {
$('#btn_check_multires_req').removeClass('disabled');
var rsp = JSON.parse(json);
if (rsp.status == "ok") {
$('#modal_check_multires_req .modal-body').css('color','green');
} else {
$('#modal_check_multires_req .modal-body').css('color','red');
}
$('#modal_check_multires_req .modal-body').html(rsp.msg);
$('#modal_check_multires_req').modal('show');
}
});
}
window.check_video360_req = function () {
$('#btn_check_video360_req').addClass('disabled');
var video360 = $('#video360 option:selected').attr('id');
var video360_cloud_url = $('#video360_cloud_url').val();
switch(video360) {
case 'local':
var url = '../services/generate_360video.php';
break;
case 'cloud':
var url = '../services/generate_360video_cloud.php';
break;
}
$.ajax({
url: url,
type: "GET",
data: {
check_req: 1,
video360_cloud_url: video360_cloud_url
},
async: true,
success: function (json) {
$('#btn_check_video360_req').removeClass('disabled');
var rsp = JSON.parse(json);
if (rsp.status == "ok") {
$('#modal_check_video360_req .modal-body').css('color','green');
} else {
$('#modal_check_video360_req .modal-body').css('color','red');
}
$('#modal_check_video360_req .modal-body').html(rsp.msg);
$('#modal_check_video360_req').modal('show');
}
});
}
window.check_slideshow_req = function () {
$('#btn_check_slideshow_req').addClass('disabled');
var slideshow = $('#slideshow option:selected').attr('id');
var slideshow_cloud_url = $('#slideshow_cloud_url').val();
switch(slideshow) {
case 'local':
var url = '../services/generate_slideshow.php';
break;
case 'cloud':
var url = '../services/generate_slideshow_cloud.php';
break;
}
$.ajax({
url: url,
type: "GET",
data: {
check_req: 1,
slideshow_cloud_url: slideshow_cloud_url
},
async: true,
success: function (json) {
$('#btn_check_slideshow_req').removeClass('disabled');
var rsp = JSON.parse(json);
if (rsp.status == "ok") {
$('#modal_check_slideshow_req .modal-body').css('color','green');
} else {
$('#modal_check_slideshow_req .modal-body').css('color','red');
}
$('#modal_check_slideshow_req .modal-body').html(rsp.msg);
$('#modal_check_slideshow_req').modal('show');
}
});
}
window.check_video_project_req = function () {
$('#btn_check_video_project_req').addClass('disabled');
var video_project = $('#video_project option:selected').attr('id');
var video_project_url = $('#video_project_url').val();
switch(video_project) {
case 'local':
var url = '../services/generate_video.php';
break;
case 'cloud':
var url = '../services/generate_video_cloud.php';
break;
}
$.ajax({
url: url,
type: "GET",
data: {
check_req: 1,
video_project_url: video_project_url
},
async: true,
success: function (json) {
$('#btn_check_video_project_req').removeClass('disabled');
var rsp = JSON.parse(json);
if (rsp.status == "ok") {
$('#modal_check_video_project_req .modal-body').css('color','green');
} else {
$('#modal_check_video_project_req .modal-body').css('color','red');
}
$('#modal_check_video_project_req .modal-body').html(rsp.msg);
$('#modal_check_video_project_req').modal('show');
}
});
}
window.regenerate_panoramas = function () {
$('#btn_regenerate_panoramas').addClass('disabled');
var compress_jpg = $('#compress_jpg').val();
var max_width_compress = $('#max_width_compress').val();
var enable_multires = $('#enable_multires').is(':checked');
if(enable_multires) {
switch(window.multires) {
case 'local':
var url = '../services/generate_multires.php';
break;
case 'cloud':
var url = '../services/generate_multires_cloud.php';
break;
}
$.ajax({
url: url,
type: "GET",
data: {
check_req: 1
},
async: true,
success: function (json) {
$('#btn_check_multires_req').removeClass('disabled');
var rsp = JSON.parse(json);
if (rsp.status == "ok") {
$.ajax({
url: "ajax/regenerate_multires.php",
type: "POST",
data: {
id_virtualtour: window.id_virtualtour,
compress_jpg: compress_jpg,
max_width_compress: max_width_compress,
enable_multires: enable_multires
},
async: true,
success: function (json) {
$('#btn_regenerate_panoramas').removeClass('disabled');
$('#modal_regenerate_multires .modal-body .error_msg').hide();
$('#modal_regenerate_multires .modal-body .ok_msg').show();
$('#modal_regenerate_multires').modal('show');
}
});
} else {
$('#btn_regenerate_panoramas').removeClass('disabled');
$('#modal_regenerate_multires .modal-body .error_msg').show();
$('#modal_regenerate_multires .modal-body .ok_msg').hide();
$('#modal_regenerate_multires').modal('show');
}
}
});
} else {
var keep_original_panorama = ($('#keep_original_panorama').is(':checked')) ? 1 : 0;
$('#modal_regenerate_panoramas').modal('show');
$.ajax({
url: "../services/resize_panoramas.php",
type: "POST",
data: {
id_virtualtour: window.id_virtualtour,
compress_jpg: compress_jpg,
max_width_compress: max_width_compress,
enable_multires: enable_multires,
keep_original_panorama: keep_original_panorama
},
async: true,
success: function (json) {
$('#btn_regenerate_panoramas').removeClass('disabled');
$('#modal_regenerate_panoramas').modal('hide');
}
});
}
}
window.delete_original_panoramas = function () {
var retVal = confirm(window.backend_labels.delete_sure_msg);
if( retVal == true ) {
var html_btn = $('#btn_delete_original_panoramas').html();
$('#btn_delete_original_panoramas').html('<i class="fas fa-spinner fa-circle-notch"></i>');
$('#btn_delete_original_panoramas').addClass('disabled');
$.ajax({
url: "../services/clean_original_images.php",
type: "POST",
data: {
id_virtualtour: window.id_virtualtour
},
async: true,
success: function (json) {
$('#btn_delete_original_panoramas').html('<i class="fas fa-check"></i>');
setTimeout(function() {
$('#btn_delete_original_panoramas').removeClass('disabled');
$('#btn_delete_original_panoramas').html(html_btn);
},500);
}
});
} else {
return false;
}
}
window.change_editor_css = function () {
var id = $('#css_name option:selected').attr('id').replace('css_','');
$('.editors_css').hide();
$('#custom_b').show();
$('#'+id).show();
}
window.change_editor_js = function () {
var id = $('#js_name option:selected').attr('id').replace('js_custom','custom_js');
$('.editors_js').hide();
$('#custom_b_js').show();
$('#'+id).show();
}
window.change_editor_head = function () {
var id = $('#head_name option:selected').attr('id').replace('head_custom','custom_head');
$('.editors_head').hide();
$('#custom_b_head').show();
$('#'+id).show();
}
window.redirect_to_setup = function() {
$('#modal_redirect_setup').modal('show');
var postData = new FormData();
postData.append('endpoint','setup_session');
fetch('../payments/stripe_api.php', {
method: 'POST',
body: postData
}).then(function(response) {
return response.json();
}).then(function(session) {
if(session.status=='ok') {
return stripe.redirectToCheckout({ sessionId: session.id });
} else {
$('#modal_redirect_setup').modal('hide');
alert(session.msg);
}
}).then(function(result) {
if (result.error) {
$('#modal_redirect_setup').modal('hide');
alert(result.error.message);
}
}).catch(function(error) {
$('#modal_redirect_setup').modal('hide');
});
}
window.get_payment_method = function() {
var postData = new FormData();
postData.append('endpoint', 'payment_method');
fetch('../payments/stripe_api.php', {
method: 'POST',
body: postData
}).then(function(response) {
return response.json();
}).then(function(result) {
if(result.status=='ok') {
$('#card_num').html("•••• •••• •••• "+result.card);
}
});
}
window.open_inline_checkout = function(id_product,id_product2,email,url,live,id_plan) {
$('#modal_redirect_checkout').modal('show');
var postData = new FormData();
postData.append('endpoint','create_customer');
postData.append('id_user', window.id_user);
fetch('../payments/2checkout_api.php', {
method: 'POST',
body: postData
}).then(function(response) {
return response.json();
}).then(function(session) {
if(session.status=='ok') {
$('#modal_redirect_checkout').modal('hide');
TwoCoInlineCart.products.removeAll();
if($('#switcher_'+id_plan).length) {
if(!$('#switcher_'+id_plan).is(':checked')) {
id_product=id_product2;
}
}
TwoCoInlineCart.cart.setReset(true);
TwoCoInlineCart.products.add({
code: id_product,
quantity: 1
});
TwoCoInlineCart.billing.setEmail(email);
if(!live) {
TwoCoInlineCart.cart.setTest(true);
}
if(session.id!=0) {
TwoCoInlineCart.cart.setCustomerReference(session.id);
}
TwoCoInlineCart.cart.setReturnMethod({
type: 'redirect',
url : url
});
TwoCoInlineCart.cart.setCartLockedFlag(true);
TwoCoInlineCart.cart.checkout();
} else {
$('#modal_redirect_checkout').modal('hide');
alert(session.msg);
}
}).then(function(result) {
if (result.error) {
$('#modal_redirect_checkout').modal('hide');
alert(result.error.message);
}
}).catch(function(error) {
$('#modal_redirect_checkout').modal('hide');
});
}
window.open_secure_checkout = function(id_product,id_product2,email,url,live,id_plan) {
$('#modal_redirect_checkout').modal('show');
var postData = new FormData();
if($('#switcher_'+id_plan).length) {
if(!$('#switcher_'+id_plan).is(':checked')) {
id_product=id_product2;
}
}
postData.append('endpoint','create_customer');
postData.append('id_user', window.id_user);
postData.append('id_product', id_product);
postData.append('url', url);
postData.append('origin_url', location.href);
postData.append('live', live);
fetch('../payments/2checkout_api.php', {
method: 'POST',
body: postData
}).then(function(response) {
return response.json();
}).then(function(session) {
if(session.status=='ok') {
$('#modal_redirect_checkout').modal('hide');
alert(session.url);
location.href = session.url;
/*var link = "https://secure.2checkout.com/checkout/buy/?merchant="+merchant_code+"&tpl=default&email="+email+"&prod="+id_product+"&qty=1&lock=1&empty-cart=1&return-url="+encodeURIComponent(url)+"&return-type=redirect&origin-url="+encodeURIComponent(location.href);
if(session.id!=0) {
link += "&customer-ref="+session.id;
}
if(!live) {
link += "&test=1";
}
alert(link);
location.href = link;*/
} else {
$('#modal_redirect_checkout').modal('hide');
alert(session.msg);
}
}).then(function(result) {
if (result.error) {
$('#modal_redirect_checkout').modal('hide');
alert(result.error.message);
}
}).catch(function(error) {
$('#modal_redirect_checkout').modal('hide');
});
}
window.redirect_to_checkout = function(id_plan) {
$('#modal_redirect_checkout').modal('show');
var second_price = 0;
if($('#switcher_'+id_plan).length) {
if(!$('#switcher_'+id_plan).is(':checked')) {
second_price=1;
}
}
var postData = new FormData();
postData.append('endpoint','checkout_session');
postData.append('id_plan', id_plan);
postData.append('second_price', second_price);
fetch('../payments/stripe_api.php', {
method: 'POST',
body: postData
}).then(function(response) {
return response.json();
}).then(function(session) {
if(session.status=='ok') {
return stripe.redirectToCheckout({ sessionId: session.id });
} else {
$('#modal_redirect_checkout').modal('hide');
alert(session.msg);
}
}).then(function(result) {
if (result.error) {
$('#modal_redirect_checkout').modal('hide');
alert(result.error.message);
}
}).catch(function(error) {
$('#modal_redirect_checkout').modal('hide');
});
}
window.change_plan_proration = function(id_plan) {
$('#new_plan').html("--");
$('#next_payment').html("--");
$('#subseq_payments').html("--");
$('#btn_change_plan').addClass("disabled");
$('#btn_change_plan').attr('onclick','change_subscription('+id_plan+')');
$('#modal_change_plan').modal('show');
var second_price = 0;
if($('#switcher_'+id_plan).length) {
if(!$('#switcher_'+id_plan).is(':checked')) {
second_price=1;
}
}
var postData = new FormData();
postData.append('endpoint', 'proration');
postData.append('id_plan', id_plan);
postData.append('second_price', second_price);
fetch('../payments/stripe_api.php', {
method: 'POST',
body: postData
}).then(function(response) {
return response.json();
}).then(function(result) {
if(result.status=='ok') {
$('#new_plan').html(result.plan.name);
$('#next_payment').html(result.next_price);
$('#subseq_payments').html(result.subseq_price);
$('#btn_change_plan').removeClass("disabled");
} else {
$('#modal_change_plan').modal('hide');
alert(result.msg);
}
}).catch(function(error) {
$('#modal_change_plan').modal('hide');
});
}
window.change_subscription = function(id_plan) {
$('#btn_change_plan').addClass("disabled");
var second_price = 0;
if($('#switcher_'+id_plan).length) {
if(!$('#switcher_'+id_plan).is(':checked')) {
second_price=1;
}
}
var postData = new FormData();
postData.append('endpoint','change_subscription');
postData.append('id_plan', id_plan);
postData.append('second_price', second_price);
fetch('../payments/stripe_api.php', {
method: 'POST',
body: postData
}).then(function(response) {
return response.json();
}).then(function(result) {
if(result.status=='ok') {
location.reload();
} else {
$('#modal_change_plan').modal('hide');
alert(result.msg);
}
}).catch(function(error) {
$('#modal_change_plan').modal('hide');
});
}
window.open_modal_delete_plan = function () {
$('#actual_plan').html("--");
$('#active_until').html("--");
$('#btn_delete_plan').addClass("disabled");
$('#modal_delete_plan').modal('show');
var postData = new FormData();
postData.append('endpoint', 'subscription_end_date');
fetch('../payments/stripe_api.php', {
method: 'POST',
body: postData
}).then(function(response) {
return response.json();
}).then(function(result) {
if(result.status=='ok') {
$('#actual_plan').html(result.name);
$('#active_until').html(result.end_date);
$('#btn_delete_plan').removeClass("disabled");
} else {
$('#modal_delete_plan').modal('hide');
alert(result.msg);
}
}).catch(function(error) {
$('#modal_delete_plan').modal('hide');
});
}
window.open_modal_delete_plan_2checkout = function () {
$('#actual_plan_2checkout').html("--");
$('#active_until_2checkout').html("--");
$('#btn_delete_plan_2checkout').addClass("disabled");
$('#modal_delete_plan_2checkout').modal('show');
var postData = new FormData();
postData.append('endpoint', 'subscription_end_date');
fetch('../payments/2checkout_api.php', {
method: 'POST',
body: postData
}).then(function(response) {
return response.json();
}).then(function(result) {
if(result.status=='ok') {
$('#actual_plan_2checkout').html(result.name);
$('#active_until_2checkout').html(result.end_date);
$('#btn_delete_plan_2checkout').removeClass("disabled");
} else {
$('#modal_delete_plan_2checkout').modal('hide');
alert(result.msg);
}
}).catch(function(error) {
$('#modal_delete_plan_2checkout').modal('hide');
});
}
window.open_modal_delete_plan_paypal = function () {
$('#actual_plan_paypal').html("--");
$('#active_until_paypal').html("--");
$('#btn_delete_plan_paypal').addClass("disabled");
$('#modal_delete_plan_paypal').modal('show');
$.ajax({
url: "ajax/get_paypal_subscription.php",
type: "POST",
async: true,
success: function (json) {
var rsp = JSON.parse(json);
if(rsp.status=="ok") {
$('#actual_plan_paypal').html(rsp.name);
$('#active_until_paypal').html(rsp.end_date);
$('#btn_delete_plan_paypal').removeClass("disabled");
}
}
});
}
window.cancel_subscription = function() {
$('#btn_delete_plan').addClass("disabled");
var postData = new FormData();
postData.append('endpoint', 'cancel_subscription');
fetch('../payments/stripe_api.php', {
method: 'POST',
body: postData
}).then(function(response) {
return response.json();
}).then(function(result) {
if(result.status=='ok') {
location.reload();
} else {
$('#modal_delete_plan').modal('hide');
alert(result.msg);
}
}).catch(function(error) {
$('#modal_delete_plan').modal('hide');
});
}
window.cancel_subscription_2checkout = function() {
$('#btn_delete_plan_2checkout').addClass("disabled");
var postData = new FormData();
postData.append('endpoint', 'cancel_subscription');
fetch('../payments/2checkout_api.php', {
method: 'POST',
body: postData
}).then(function(response) {
return response.json();
}).then(function(result) {
if(result.status=='ok') {
location.reload();
} else {
$('#modal_delete_plan_2checkout').modal('hide');
alert(result.msg);
}
}).catch(function(error) {
$('#modal_delete_plan_2checkout').modal('hide');
});
}
window.cancel_subscription_paypal = function() {
$('#btn_delete_plan_paypal').addClass("disabled");
$.ajax({
url: "ajax/cancel_paypal_subscription.php",
type: "POST",
async: true,
success: function (json) {
var rsp = JSON.parse(json);
if(rsp.status=="ok") {
location.reload();
} else {
$('#modal_delete_plan_paypal').modal('hide');
alert(rsp.msg);
}
}
});
}
window.open_modal_reactivate_subscription = function () {
$('#btn_reactivate_plan').removeClass("disabled");
$('#modal_reactivate_plan').modal('show');
}
window.reactivate_subscription = function() {
$('#btn_reactivate_plan').addClass("disabled");
var postData = new FormData();
postData.append('endpoint', 'reactivate_subscription');
fetch('../payments/stripe_api.php', {
method: 'POST',
body: postData
}).then(function(response) {
return response.json();
}).then(function(result) {
if(result.status=='ok') {
location.reload();
} else {
$('#modal_reactivate_plan').modal('hide');
alert(result.msg);
}
}).catch(function(error) {
$('#modal_reactivate_plan').modal('hide');
});
}
window.apply_default_moves = function(p) {
var element = p;
$('#modal_'+p+'_move_apply button').addClass("disabled");
var rotateX = $('#rotateX').val();
var rotateZ = $('#rotateZ').val();
var size = $('#size_scale').val();
var scale = $('#scale').is(':checked') ? 1 : 0;
switch(p) {
case 'markers':
var apply_perspective = $('#apply_marker_perspective').is(':checked')?1:0;
var apply_size = $('#apply_marker_size').is(':checked')?1:0;
var apply_scale = $('#apply_marker_scale').is(':checked')?1:0;
break;
case 'pois':
var apply_perspective = $('#apply_poi_perspective').is(':checked')?1:0;
var apply_size = $('#apply_poi_size').is(':checked')?1:0;
var apply_scale = $('#apply_poi_scale').is(':checked')?1:0;
break;
}
if(apply_perspective==1 || apply_size==1 || apply_scale==1) {
$.ajax({
url: "ajax/apply_default_moves.php",
type: "POST",
data: {
p: element,
rotateX: rotateX,
rotateZ: rotateZ,
size: size,
scale: scale,
apply_perspective: apply_perspective,
apply_size: apply_size,
apply_scale: apply_scale
},
async: true,
success: function (json) {
var rsp = JSON.parse(json);
if (rsp.status == "ok") {
$('#modal_'+element+'_move_apply').modal('hide');
switch(p) {
case 'markers':
if(window.id_room_sel!=0) {
jQuery.each(window.rooms, function(index, room) {
var id = room.id;
var image = room.panorama_image;
if(id==window.id_room_sel) {
exit_move_marker(marker_id_edit,marker_index_edit);
setTimeout(function() {
select_room_marker(id,image,null);
},210);
}
});
}
break;
case 'pois':
if(window.id_room_sel!=0) {
jQuery.each(window.rooms, function(index, room) {
var id = room.id;
var image = room.panorama_image;
if(id==window.id_room_sel) {
exit_move_poi(poi_id_edit,poi_index_edit);
setTimeout(function() {
select_room_poi(id,image,null);
},210);
}
});
}
break;
}
} else {
alert(rsp.msg);
}
$('#modal_'+element+'_move_apply button').removeClass("disabled");
}
});
} else {
$('#modal_'+element+'_move_apply button').removeClass("disabled");
}
}
window.apply_default_styles = function(p) {
var element = p;
$('#modal_'+p+'_style_apply button').addClass("disabled");
switch(p) {
case 'markers':
var icon = $('#markers_icon').val();
var id_icon_library = $('#marker_library_icon').val();
var color = $('#markers_color').val();
var background = $('#markers_background').val();
var style = $('#markers_style option:selected').attr('id');
var icon_type = $('#markers_icon_type option:selected').attr('id');
var tooltip_type = $('#markers_tooltip_type option:selected').attr('id');
var tooltip_visibility = $('#markers_tooltip_visibility option:selected').attr('id');
var tooltip_background = $('#markers_tooltip_background').val();
var tooltip_color = $('#markers_tooltip_color').val();
var default_scale = $('#markers_default_scale').is(':checked')?1:0;
var sound = $('#markers_default_sound option:selected').attr('id');
var animation = $('#markers_animation option:selected').attr('id');
var apply_style = $('#apply_marker_style').is(':checked')?1:0;
var apply_icon = $('#apply_marker_icon').is(':checked')?1:0;
var apply_color = $('#apply_marker_color').is(':checked')?1:0;
var apply_background = $('#apply_marker_background').is(':checked')?1:0;
var apply_icon_type = $('#apply_marker_icon_type').is(':checked')?1:0;
var apply_tooltip_type = $('#apply_marker_tooltip_type').is(':checked')?1:0;
var apply_tooltip_visibility = $('#apply_marker_tooltip_visibility').is(':checked')?1:0;
var apply_tooltip_background = $('#apply_marker_tooltip_background').is(':checked')?1:0;
var apply_tooltip_color = $('#apply_marker_tooltip_color').is(':checked')?1:0;
var apply_default_scale = $('#apply_marker_default_scale').is(':checked')?1:0;
var apply_sound = $('#apply_marker_default_sound').is(':checked')?1:0;
var apply_animation = $('#apply_marker_animation').is(':checked')?1:0;
var set_as_default = 0;
switch(style) {
case 'room_and_icon':
style = 2;
break;
case 'icon_and_room':
style = 1;
break;
case 'only_icon':
style = 0;
break;
case 'only_room':
style = 3;
break;
case 'custom_icon':
style = 4;
break;
case 'preview_room':
style = 5;
break;
}
break;
case 'markers_e':
element = 'markers';
var icon = $('#marker_icon').val();
var id_icon_library = $('#marker_library_icon').val();
var color = $('#marker_color').val();
var background = $('#marker_background').val();
var style = $('#marker_style option:selected').attr('id');
var icon_type = $('#marker_icon_type option:selected').attr('id');
var tooltip_type = $('#tooltip_type option:selected').attr('id');
var tooltip_visibility = $('#tooltip_visibility option:selected').attr('id');
var tooltip_background = $('#tooltip_background').val();
var tooltip_color = $('#tooltip_color').val();
var sound = $('#marker_sound option:selected').attr('id');
var animation = $('#marker_animation option:selected').attr('id');
var apply_style = $('#apply_marker_style').is(':checked')?1:0;
var apply_tooltip_type = $('#apply_marker_tooltip_type').is(':checked')?1:0;
var apply_icon = $('#apply_marker_icon').is(':checked')?1:0;
var apply_color = $('#apply_marker_color').is(':checked')?1:0;
var apply_background = $('#apply_marker_background').is(':checked')?1:0;
var apply_icon_type = $('#apply_marker_icon_type').is(':checked')?1:0;
var apply_tooltip_visibility = $('#apply_marker_tooltip_visibility').is(':checked')?1:0;
var apply_tooltip_background = $('#apply_marker_tooltip_background').is(':checked')?1:0;
var apply_tooltip_color = $('#apply_marker_tooltip_color').is(':checked')?1:0;
var apply_sound = $('#apply_marker_sound').is(':checked')?1:0;
var apply_animation = $('#apply_marker_animation').is(':checked')?1:0;
var set_as_default = $('#set_as_default').is(':checked')?1:0;
switch(style) {
case 'room_and_icon':
style = 2;
break;
case 'icon_and_room':
style = 1;
break;
case 'only_icon':
style = 0;
break;
case 'only_room':
style = 3;
break;
case 'custom_icon':
style = 4;
break;
case 'preview_room':
style = 5;
break;
}
break;
case 'pois':
var icon = $('#pois_icon').val();
var id_icon_library = $('#poi_library_icon').val();
var color = $('#pois_color').val();
var background = $('#pois_background').val();
var style = $('#pois_style option:selected').attr('id');
var icon_type = $('#pois_icon_type option:selected').attr('id');
var tooltip_type = $('#pois_tooltip_type option:selected').attr('id');
var tooltip_visibility = $('#pois_tooltip_visibility option:selected').attr('id');
var tooltip_background = $('#pois_tooltip_background').val();
var tooltip_color = $('#pois_tooltip_color').val();
var default_scale = $('#pois_default_scale').is(':checked')?1:0;
var sound = $('#pois_default_sound option:selected').attr('id');
var animation = $('#pois_animation option:selected').attr('id');
var apply_style = $('#apply_poi_style').is(':checked')?1:0;
var apply_icon = $('#apply_poi_icon').is(':checked')?1:0;
var apply_color = $('#apply_poi_color').is(':checked')?1:0;
var apply_background = $('#apply_poi_background').is(':checked')?1:0;
var apply_icon_type = $('#apply_poi_icon_type').is(':checked')?1:0;
var apply_tooltip_type = $('#apply_poi_tooltip_type').is(':checked')?1:0;
var apply_tooltip_visibility = $('#apply_poi_tooltip_visibility').is(':checked')?1:0;
var apply_tooltip_background = $('#apply_poi_tooltip_background').is(':checked')?1:0;
var apply_tooltip_color = $('#apply_poi_tooltip_color').is(':checked')?1:0;
var apply_default_scale = $('#apply_poi_default_scale').is(':checked')?1:0;
var apply_sound = $('#apply_poi_default_sound').is(':checked')?1:0;
var apply_animation = $('#apply_poi_animation').is(':checked')?1:0;
var set_as_default = 0;
switch(style) {
case 'label_and_icon':
style = 3;
break;
case 'icon_and_label':
style = 2;
break;
case 'only_icon':
style = 0;
break;
case 'only_label':
style = 4;
break;
case 'custom_icon':
style = 1;
break;
}
break;
case 'pois_e':
element = 'pois';
var icon = $('#poi_icon').val();
var id_icon_library = $('#poi_library_icon').val();
var color = $('#poi_color').val();
var background = $('#poi_background').val();
var style = $('#poi_style option:selected').attr('id');
var icon_type = $('#poi_icon_type option:selected').attr('id');
var tooltip_type = $('#tooltip_type option:selected').attr('id');
var tooltip_visibility = $('#tooltip_visibility option:selected').attr('id');
var tooltip_background = $('#tooltip_background').val();
var tooltip_color = $('#tooltip_color').val();
var sound = $('#poi_sound option:selected').attr('id');
var animation = $('#poi_animation option:selected').attr('id');
var apply_style = $('#apply_poi_style').is(':checked')?1:0;
var apply_tooltip_type = $('#apply_poi_tooltip_type').is(':checked')?1:0;
var apply_icon = $('#apply_poi_icon').is(':checked')?1:0;
var apply_color = $('#apply_poi_color').is(':checked')?1:0;
var apply_background = $('#apply_poi_background').is(':checked')?1:0;
var apply_icon_type = $('#apply_poi_icon_type').is(':checked')?1:0;
var apply_tooltip_visibility = $('#apply_poi_tooltip_visibility').is(':checked')?1:0;
var apply_tooltip_background = $('#apply_poi_tooltip_background').is(':checked')?1:0;
var apply_tooltip_color = $('#apply_poi_tooltip_color').is(':checked')?1:0;
var apply_sound = $('#apply_poi_sound').is(':checked')?1:0;
var apply_animation = $('#apply_poi_animation').is(':checked')?1:0;
var set_as_default = $('#set_as_default').is(':checked')?1:0;
switch(style) {
case 'label_and_icon':
style = 3;
break;
case 'icon_and_label':
style = 2;
break;
case 'only_icon':
style = 0;
break;
case 'only_label':
style = 4;
break;
case 'custom_icon':
style = 1;
break;
}
break;
}
if(apply_style==1 || apply_tooltip_type==1 || apply_icon==1 || apply_color==1 || apply_background==1 || apply_icon_type==1 || apply_tooltip_visibility==1 || apply_tooltip_background==1 || apply_tooltip_color==1 || apply_default_scale==1 || apply_sound==1 || apply_animation==1) {
if(p=='markers_e') change_exclude_apply_all('marker');
if(p=='pois_e') change_exclude_apply_all('poi');
$.ajax({
url: "ajax/apply_default_styles.php",
type: "POST",
data: {
element: element,
p: p,
icon: icon,
icon_type: icon_type,
id_icon_library: id_icon_library,
color: color,
background: background,
style: style,
tooltip_type: tooltip_type,
tooltip_visibility: tooltip_visibility,
tooltip_background: tooltip_background,
tooltip_color: tooltip_color,
default_scale: default_scale,
sound: sound,
animation: animation,
apply_style: apply_style,
apply_icon: apply_icon,
apply_color: apply_color,
apply_background: apply_background,
apply_icon_type: apply_icon_type,
apply_tooltip_type: apply_tooltip_type,
apply_tooltip_visibility: apply_tooltip_visibility,
apply_tooltip_background: apply_tooltip_background,
apply_tooltip_color: apply_tooltip_color,
apply_default_scale: apply_default_scale,
apply_sound: apply_sound,
apply_animation: apply_animation,
set_as_default: set_as_default
},
async: true,
success: function (json) {
var rsp = JSON.parse(json);
if (rsp.status == "ok") {
$('#modal_'+element+'_style_apply').modal('hide');
switch(p) {
case 'markers_e':
if(window.id_room_sel!=0) {
jQuery.each(window.rooms, function(index, room) {
var id = room.id;
var image = room.panorama_image;
if(id==window.id_room_sel) {
exit_edit_marker(marker_id_edit,marker_index_edit);
setTimeout(function() {
select_room_marker(id,image,null);
},210);
}
});
}
break;
case 'pois_e':
if(window.id_room_sel!=0) {
jQuery.each(window.rooms, function(index, room) {
var id = room.id;
var image = room.panorama_image;
if(id==window.id_room_sel) {
exit_edit_poi(poi_id_edit,poi_index_edit);
setTimeout(function() {
select_room_poi(id,image,null);
},210);
}
});
}
break;
}
} else {
alert(rsp.msg);
}
$('#modal_'+element+'_style_apply button').removeClass("disabled");
}
});
} else {
$('#modal_'+element+'_style_apply button').removeClass("disabled");
}
}
window.apply_default_initial_pos = function() {
$('#modal_initial_position_apply button').addClass("disabled");
var apply_yaw = $('#apply_initial_pos_yaw').is(':checked') ? 1 : 0;
var apply_pitch = $('#apply_initial_pos_pitch').is(':checked') ? 1 : 0;
var yaw_pitch = $('#yaw_pitch').val();
var yaw = yaw_pitch.split(",")[0];
var pitch = yaw_pitch.split(",")[1];
if(apply_yaw==1 || apply_pitch==1) {
$.ajax({
url: "ajax/apply_default_initial_pos.php",
type: "POST",
data: {
yaw: yaw,
pitch: pitch,
apply_yaw: apply_yaw,
apply_pitch: apply_pitch
},
async: true,
success: function () {
$('#modal_initial_position_apply').modal('hide');
$('#modal_initial_position_apply button').removeClass("disabled");
}
});
} else {
$('#modal_initial_position_apply button').removeClass("disabled");
}
}
window.apply_default_north = function() {
var north = $('#northOffset').val();
$('#modal_north_apply button').addClass("disabled");
$.ajax({
url: "ajax/apply_default_north.php",
type: "POST",
data: {
north: north,
},
async: true,
success: function () {
$('#modal_north_apply').modal('hide');
$('#modal_north_apply button').removeClass("disabled");
}
});
}
window.apply_default_effects = function() {
var brightness = $('#brightness').val();
var contrast = $('#contrast').val();
var saturate = $('#saturate').val();
var grayscale = $('#grayscale').val();
$('#modal_effects_apply button').addClass("disabled");
$.ajax({
url: "ajax/apply_default_effects.php",
type: "POST",
data: {
brightness: brightness,
contrast: contrast,
saturate: saturate,
grayscale: grayscale
},
async: true,
success: function () {
$('#modal_effects_apply').modal('hide');
$('#modal_effects_apply button').removeClass("disabled");
}
});
}
window.view_preview_panorama_image = function() {
$('#preview_image img').hide();
$('#btn_preview_panorama_image').hide();
$('#preview_panorama_image').show();
$('#btn_close_panorama_image').show();
$('#btn_full_panorama_image').show();
}
window.fullscreen_preview_panorama_image = function() {
var type = $('#type_pano option:selected').attr('id');
switch (type) {
case 'video':
toggle_fullscreen_div('video_viewer');
break;
default:
toggle_fullscreen_div('preview_panorama_image');
break;
}
}
window.close_preview_panorama_image = function() {
$('#preview_image img').show();
$('#btn_preview_panorama_image').show();
$('#preview_panorama_image').hide();
$('#btn_close_panorama_image').hide();
$('#btn_full_panorama_image').hide();
}
window.view_preview_panorama_ai = function() {
$('#preview_image_ai img').hide();
$('#btn_preview_panorama_ai').hide();
$('#preview_panorama_ai').show();
$('#btn_close_panorama_ai').show();
$('#btn_full_panorama_ai').show();
}
window.fullscreen_preview_panorama_ai = function() {
toggle_fullscreen_div('preview_panorama_ai');
}
window.close_preview_panorama_ai = function() {
$('#preview_image_ai img').show();
$('#btn_preview_panorama_ai').show();
$('#preview_panorama_ai').hide();
$('#btn_close_panorama_ai').hide();
$('#btn_full_panorama_ai').hide();
}
window.load_viewer_preview_room = function (elem,panorama_image) {
try {
window.viewer_preview_room.destroy();
} catch (e) {}
try {
window.viewer_video.pnlmViewer.destroy();
window.viewer_video.dispose();
window.viewer_video = null;
$('#'+elem).empty();
} catch (e) {}
window.viewer_preview_room = pannellum.viewer(elem, {
"type": "equirectangular",
"panorama": panorama_image,
"autoLoad": true,
"showFullscreenCtrl": true,
"showControls": false,
"hfov": 100,
"yaw": 0,
"pitch": 0,
"compass": false,
"friction": 1,
"strings": {
"loadingLabel": window.backend_labels.loading+"...",
},
});
}
window.load_viewer_preview_room_l = function (elem,panorama_image,panorama_json) {
try {
window.viewer_preview_room.destroy();
} catch (e) {}
try {
window.viewer_video.pnlmViewer.destroy();
window.viewer_video.dispose();
window.viewer_video = null;
$('#'+elem).empty();
} catch (e) {}
var img_lottie = new Image();
img_lottie.onload = function() {
var canvas = document.createElement('canvas');
canvas.width = this.width;
canvas.height = this.height;
var lottie_context = canvas.getContext('2d');
lottie_context.drawImage(img_lottie, 0, 0);
var lottie_pano = bodymovin.loadAnimation({
renderer: 'canvas',
loop: true,
autoplay: true,
path: panorama_json+(window.s3_enabled) ? '?s3=1' : '',
rendererSettings: {
context: lottie_context,
progressiveLoad: true,
}
});
window.viewer_preview_room = pannellum.viewer(elem, {
"type": "equirectangular",
"panorama": canvas,
"autoLoad": true,
"dynamic": true,
"dynamicUpdate": true,
"showFullscreenCtrl": false,
"showControls": false,
"multiResMinHfov": true,
"hfov": 100,
"yaw": 0,
"pitch": 0,
"compass": false,
"friction": 1,
"strings": {
"loadingLabel": window.backend_labels.loading + "...",
},
});
}
img_lottie.crossOrigin = false;
img_lottie.src = panorama_image;
}
window.load_viewer_preview_room_v = function (elem,panorama_video) {
try {
window.viewer_preview_room.destroy();
} catch (e) {}
try {
window.viewer_video.pnlmViewer.destroy();
window.viewer_video.dispose();
window.viewer_video = null;
$('#'+elem).empty();
} catch (e) {}
var fileExt = panorama_video.split('.').pop().toLowerCase();
switch(fileExt) {
case 'webm':
var type_video = 'video/webm';
break;
default:
var type_video = 'video/mp4';
break;
}
$('#'+elem).append('<video playsinline webkit-playsinline id="video_viewer" class="video-js vjs-default-skin vjs-big-play-centered" style="width: 100%;height: 232px;margin: 0 auto;" muted preload="none" crossorigin="anonymous"><source src="'+panorama_video+'" type="'+type_video+'"/></video>');
window.viewer_video = videojs('video_viewer', {
loop: true,
autoload: true,
muted: true,
plugins: {
pannellum: {
"autoLoad": true,
"showFullscreenCtrl": false,
"showControls": false,
"hfov": 100,
"yaw": 0,
"pitch": 0,
"compass": false,
"friction": 1,
"strings": {
"loadingLabel": window.backend_labels.loading+"...",
},
}
}
});
window.viewer_video.load();
window.viewer_video.on('ready', function() {
window.viewer_video.play();
});
}
window.load_viewer_pos = function (elem,id_room,panorama_image,yaw,pitch,h_pitch,h_roll,min_pitch,max_pitch,haov,vaov,min_yaw,max_yaw,hfov) {
try {
window.viewer_pos.destroy();
} catch (e) {}
switch(elem) {
case 'panorama_pos_slide':
var min_hov = 40;
var max_hfov = 140;
break;
case 'panorama_pos_presentation':
var min_hov = parseFloat(window.p_min_hfov);
var max_hfov = parseFloat(window.p_max_hfov);
break;
default:
var min_hov = 100;
var max_hfov = 100;
break
}
window.viewer_pos = pannellum.viewer(elem, {
"id_room": parseInt(id_room),
"type": "equirectangular",
"panorama": panorama_image,
"autoLoad": true,
"showFullscreenCtrl": false,
"showControls": false,
"horizonPitch": parseInt(h_pitch),
"horizonRoll": parseInt(h_roll),
"hfov": hfov,
"minHfov": min_hov,
"maxHfov": max_hfov,
"yaw": yaw,
"pitch": pitch,
"minPitch": parseInt(min_pitch),
"maxPitch" : parseInt(max_pitch),
"minYaw": parseInt(min_yaw),
"maxYaw" : parseInt(max_yaw),
"haov": parseInt(haov),
"vaov": parseInt(vaov),
"compass": false,
"friction": 1,
"strings": {
"loadingLabel": window.backend_labels.loading+"...",
},
});
window.viewer_pos.on('load', function () {
$('#confirm_edit .btn_confirm').removeClass("disabled");
$('#btn_new_marker').removeClass("disabled");
switch(elem) {
case 'panorama_pos_slide':
$('#play_slide_panorama_btn').removeClass('disabled');
$('#panorama_slide_start_btn').removeClass('disabled');
$('#panorama_slide_end_btn').removeClass('disabled');
break;
case 'panorama_pos_presentation':
$('#btn_add_p_room').removeClass('disabled');
break;
}
});
window.viewer_pos.on('animatefinished',function () {
switch(elem) {
case 'panorama_pos_slide':
var yaw = parseInt(window.viewer_pos.getYaw());
var pitch = parseInt(window.viewer_pos.getPitch());
var hfov = parseInt(window.viewer_pos.getHfov());
$('#slide_yaw').html(yaw);
$('#slide_pitch').html(pitch);
$('#slide_hfov').html(hfov);
break;
case 'panorama_pos_presentation':
var yaw = parseFloat(window.viewer_pos.getYaw()).toFixed(2);
var pitch = parseFloat(window.viewer_pos.getPitch()).toFixed(2);
var hfov = parseInt(window.viewer_pos.getHfov());
$('#presentation_room_pos').html(yaw+","+pitch+" ("+hfov+")");
break;
}
});
window.viewer_pos.on('mousedown', function () {
switch(elem) {
case 'panorama_pos_add':
$('#override_pos_add').prop('checked',true);
break;
case 'panorama_pos_edit':
$('#override_pos_edit').prop('checked',true);
break;
case 'panorama_pos_presentation':
$('#override_pos_presentation').prop('checked',true);
break;
}
});
}
window.close_edit_thumbnail = function() {
$('#div_thumbnail').hide();
$('#div_panorama').show();
$('#btn_edit_thumbnail').removeClass('disabled');
$('#frm_thumb').removeClass('disabled');
$(window).trigger('resize');
}
window.edit_thumbnail = function() {
$('#btn_edit_thumbnail').addClass('disabled');
$('#frm_thumb').addClass('disabled');
if(window.room_type=='image' || window.room_type=='hls' || window.room_type=='lottie' || (window.room_type=='video' && window.is_mobile)) {
var dataURL = window.viewer.getRenderer().render(window.viewer.getPitch() / 180 * Math.PI,
window.viewer.getYaw() / 180 * Math.PI,
window.viewer.getHfov() / 180 * Math.PI,
{'returnImage': 'image/jpeg'});
$('#div_panorama').hide();
$('#div_thumbnail').show();
window.cropper_thumb.replace(dataURL);
} else {
var dataURL = window.viewer_video.pnlmViewer.getRenderer().render(window.viewer_video.pnlmViewer.getPitch() / 180 * Math.PI,
window.viewer_video.pnlmViewer.getYaw() / 180 * Math.PI,
window.viewer_video.pnlmViewer.getHfov() / 180 * Math.PI,
{'returnImage': 'image/jpeg'});
$('#div_panorama').hide();
$('#div_thumbnail').show();
window.cropper_thumb.replace(dataURL);
}
}
window.initialize_cropper_thumbnail = function(dataURL) {
$('#frm_thumb').removeClass('disabled');
if(window.cropper_thumb==null) {
var $img = $("#panorama_image_edit");
$img.on('load',function(){
setTimeout(function () {
var image = document.getElementById('panorama_image_edit');
window.cropper_thumb = new Cropper(image, {
zoomable: false,
zoomOnTouch: false,
zoomOnWheel: false,
aspectRatio: 16 / 9,
});
$img.off('load');
$('#btn_edit_thumbnail').removeClass('disabled');
},200);
});
$img.attr('src',dataURL);
}
}
window.crop_thumbnail = function () {
$('#frm_thumb').addClass('disabled');
$('#div_thumbnail button').addClass('disabled');
var crop_data = window.cropper_thumb.getData();
var image = $('#panorama_image_edit').attr('src');
$.ajax({
url: "ajax/crop_thumbnail.php",
type: "POST",
data: {
id_room: window.id_room,
image: image,
crop_data: crop_data
},
async: true,
success: function (json) {
var rsp = JSON.parse(json);
if (rsp.status == "ok") {
window.thumb_image = rsp.thumb_image;
if(window.s3_enabled==1) {
$('#thumb_image').attr('src',window.s3_url+'viewer/panoramas/thumb_custom/'+rsp.thumb_image);
} else {
$('#thumb_image').attr('src','../viewer/panoramas/thumb_custom/'+rsp.thumb_image);
}
$('#div_thumbnail').hide();
$('#div_panorama').show();
$('#btn_edit_thumbnail').removeClass('disabled');
$('#frm_thumb').removeClass('disabled');
}
$('#div_thumbnail button').removeClass('disabled');
$(window).trigger('resize');
}
});
}
window.reset_statistics = function () {
$('#modal_reset_statistics button').addClass("disabled");
$.ajax({
url: "ajax/reset_statistics.php",
type: "POST",
data: {
id_user: window.id_user,
id_virtualtour: window.id_virtualtour
},
async: true,
success: function (json) {
var rsp = JSON.parse(json);
if (rsp.status == "ok") {
$('#modal_reset_statistics button').removeClass("disabled");
$('#modal_reset_statistics').modal("hide");
location.reload();
} else {
$('#modal_reset_statistics button').removeClass("disabled");
}
}
});
}
window.reset_leads = function () {
$('#modal_reset_leads button').addClass("disabled");
$.ajax({
url: "ajax/reset_leads.php",
type: "POST",
data: {
id_user: window.id_user,
id_virtualtour: window.id_virtualtour
},
async: true,
success: function (json) {
var rsp = JSON.parse(json);
if (rsp.status == "ok") {
$('#modal_reset_leads button').removeClass("disabled");
$('#modal_reset_leads').modal("hide");
location.reload();
} else {
$('#modal_reset_leads button').removeClass("disabled");
}
}
});
}
window.reset_forms_data = function () {
$('#modal_reset_forms_data button').addClass("disabled");
$.ajax({
url: "ajax/reset_forms_data.php",
type: "POST",
data: {
id_user: window.id_user,
id_virtualtour: window.id_virtualtour
},
async: true,
success: function (json) {
var rsp = JSON.parse(json);
if (rsp.status == "ok") {
$('#modal_reset_forms_data button').removeClass("disabled");
$('#modal_reset_forms_data').modal("hide");
location.reload();
} else {
$('#modal_reset_forms_data button').removeClass("disabled");
}
}
});
}
window.show_grid_position = function() {
$('.grid_position').show();
}
window.hide_grid_position = function() {
$('.grid_position').hide();
}
window.show_btn_toggle_effects = function () {
$('#btn_toggle_effetcs').show();
}
window.hide_btn_toggle_effects = function () {
$('#btn_toggle_effetcs').hide();
}
window.show_btn_screenshot = function () {
$('#btn_screenshot').show();
}
window.hide_btn_screenshot = function () {
$('#btn_screenshot').hide();
}
window.toggle_effects = function() {
if(room_type=='video' && !window.is_mobile) {
var canvas = viewer_video.pnlmViewer.getRenderer().getCanvas();
} else {
var canvas = viewer.getRenderer().getCanvas();
}
if($('#btn_toggle_effetcs i').hasClass('active')) {
$('#btn_toggle_effetcs i').removeClass('active');
$('.snow_effect').hide();
$('.rain_effect').hide();
$('.fog_effect').hide();
$('.fireworks_effect').hide();
$('.confetti_effect').hide();
$('.sparkle_effect').hide();
canvas.style.filter='';
} else {
$('#btn_toggle_effetcs i').addClass('active');
$('.snow_effect').show();
$('.rain_effect').show();
$('.fog_effect').show();
$('.fireworks_effect').show();
$('.confetti_effect').show();
$('.sparkle_effect').show();
var brightness = $('#brightness').val();
$('#brightness_val').html(brightness+'%');
var contrast = $('#contrast').val();
$('#contrast_val').html(contrast+'%');
var saturate = $('#saturate').val();
$('#saturate_val').html(saturate+'%');
var grayscale = $('#grayscale').val();
$('#grayscale_val').html(grayscale+'%');
var filter = '';
if(brightness!=100) {
filter += 'brightness('+brightness+'%) ';
}
if(contrast!=100) {
filter += 'contrast('+contrast+'%) ';
}
if(saturate!=100) {
filter += 'saturate('+saturate+'%) ';
}
if(grayscale!=0) {
filter += 'grayscale('+grayscale+'%) ';
}
canvas.style.filter = filter;
}
}
window.add_category = function () {
var name = $('#category_name').val();
if(name!='') {
$('#modal_add_category button').addClass("disabled");
$.ajax({
url: "ajax/add_category.php",
type: "POST",
data: {
name: name
},
async: true,
success: function (json) {
var rsp = JSON.parse(json);
if (rsp.status == "ok") {
$('#modal_add_category button').removeClass("disabled");
$('#modal_add_category').modal("hide");
var id = rsp.id;
$('#category').append("<option id='"+id+"' selected>"+name+"</option>");
$('#category').selectpicker('refresh');
var val = $('#category').selectpicker('val');
$('#category').selectpicker('val', val);
} else {
$('#modal_add_category button').removeClass("disabled");
}
}
});
}
}
window.edit_category = function(id) {
var name = $('#cat_'+id).val();
if(name!='') {
$.ajax({
url: "ajax/edit_category.php",
type: "POST",
data: {
id: id,
name: name
},
async: false,
success: function (json) {
var rsp = JSON.parse(json);
if (rsp.status == "ok") {
$('#cat_'+id).addClass('success-highlight');
setTimeout(function() {
$('#cat_'+id).removeClass('success-highlight');
},500);
} else {
$('#cat_'+id).addClass('error-highlight');
setTimeout(function() {
$('#cat_'+id).removeClass('error-highlight');
},500);
}
}
});
}
}
window.modal_delete_category = function(id) {
$('#btn_delete_category').attr('onclick','delete_category('+id+');');
$('#modal_delete_category').modal("show");
}
window.delete_category = function (id) {
$('#modal_delete_category button').addClass("disabled");
$.ajax({
url: "ajax/delete_category.php",
type: "POST",
data: {
id: id
},
async: true,
success: function (json) {
var rsp = JSON.parse(json);
if (rsp.status == "ok") {
$('#modal_delete_category button').removeClass("disabled");
$('#modal_delete_category').modal("hide");
$('#ca_tr_'+id).remove();
} else {
$('#modal_delete_category button').removeClass("disabled");
}
}
});
};
window.add_category_s = function () {
var name = $('#cat_new').val();
if(name!='') {
$('#btn_add_category').addClass("disabled");
$.ajax({
url: "ajax/add_category.php",
type: "POST",
data: {
name: name
},
async: true,
success: function (json) {
var rsp = JSON.parse(json);
if (rsp.status == "ok") {
get_categories();
$('#btn_add_category').removeClass("disabled");
$('#cat_new').val('');
}
}
});
}
}
window.get_categories = function() {
$.ajax({
url: "ajax/get_categories.php",
type: "POST",
async: true,
success: function (json) {
var rsp = JSON.parse(json);
if (rsp.status == "ok") {
$('#table_categories tbody').html(rsp.html);
}
}
});
}
window.change_keyboard_mode = function() {
var keyborad_mode = $('#keyboard_mode option:selected').attr('id');
$('#keyboard_msg_0').addClass('d-none');
$('#keyboard_msg_1').addClass('d-none');
$('#keyboard_msg_2').addClass('d-none');
$('#keyboard_msg_'+keyborad_mode).removeClass('d-none');
}
window.change_frequency = function(id) {
var frequency = $('#frequency'+id+' option:selected').attr('id');
switch (frequency) {
case 'one_time':
case 'month_year':
$('#interval_count'+id).prop('disabled',true);
$('#price2'+id).prop('disabled',false);
break;
case 'recurring':
$('#interval_count'+id).prop('disabled',false);
$('#price2'+id).prop('disabled',true);
break;
}
}
window.open_qr_code_modal = function (link) {
var qrcode_src = "https://api.qrserver.com/v1/create-qr-code/?size=400x400&data="+encodeURIComponent(link);
$('#modal_qrcode').modal('show');
$('#modal_qrcode i').show();
$('#modal_qrcode img').hide();
$('#modal_qrcode img').on("load", function() {
$('#modal_qrcode i').hide();
$('#modal_qrcode img').show();
}).attr("src", qrcode_src);
}
window.translate_deepl = function (elem) {
switch (elem) {
case 'description_product':
var text = window.description_editor.root.innerHTML;
break;
case 'tooltip_text_html':
var text = window.tooltip_text_editor.root.innerHTML;
break;
case 'poi_content_html':
var text = window.html_editor.root.innerHTML;
break;
case 'poi_embed_content_html':
var text = window.poi_embed_content_html_editor.root.innerHTML;
break;
default:
var text = $('#'+elem).val();
break;
}
if(text==='<p><br></p>') text='';
if(text!='') {
$('.lang_input_switcher[data-elem="'+elem+'"] .translate_deepl_btn').addClass('disabled');
$('.lang_input_switcher[data-elem="'+elem+'"] .translate_deepl_btn i').removeClass('fa-globe').addClass('fa-circle-notch').addClass('fa-spin');
$.ajax({
url: "ajax/translate_deepl.php",
type: "POST",
async: true,
data: {
language: window.selected_language,
text: text
},
success: function (rsp) {
$('.lang_input_switcher[data-elem="'+elem+'"] .translate_deepl_btn').removeClass('disabled');
$('.lang_input_switcher[data-elem="'+elem+'"] .translate_deepl_btn i').addClass('fa-globe').removeClass('fa-circle-notch').removeClass('fa-spin');
if(rsp!='') {
rsp = rsp.replace(/^\s+|\s+$/g, '');
switch (elem) {
case 'description_product':
window.description_editor_lang[window.selected_language].root.innerHTML=rsp;
break;
case 'tooltip_text_html':
window.tooltip_text_editor_lang[window.selected_language].root.innerHTML=rsp;
break;
case 'poi_content_html':
window.html_editor_lang[window.selected_language].root.innerHTML=rsp;
break;
case 'poi_embed_content_html':
window.poi_embed_content_html_editor_lang[window.selected_language].root.innerHTML=rsp;
break;
default:
$('.input_lang[data-target-id="'+elem+'"][data-lang="'+window.selected_language+'"]').val(rsp);
break;
}
if(elem=='callout_title' || elem=='callout_description') change_callout_params();
}
}, error: function() {
$('.lang_input_switcher[data-elem="'+elem+'"] .translate_deepl_btn').removeClass('disabled');
$('.lang_input_switcher[data-elem="'+elem+'"] .translate_deepl_btn i').addClass('fa-globe').removeClass('fa-circle-notch').removeClass('fa-spin');
}
});
}
}
window.switch_input_language = function (lang,default_lang,elem,bulk=true) {
var orig_elem = elem;
window.selected_language=lang;
var url = new URL(location.href);
var url_params = new URLSearchParams(url.search);
var page_section = url_params.get('p');
sessionStorage.setItem('lang_'+window.id_virtualtour+'_'+page_section,lang);
$('#dropdown_lang_'+elem+' img').attr("src","img/flags_lang/"+lang+'.png?v=2');
switch(elem) {
case 'info_box':
$('#iframe_info_editor').contents().find(".info_editor_lang").hide();
if(lang!=default_lang) {
window.active_lang = lang;
$('#iframe_info_editor').contents().find("#info_editor").hide();
if(window.info_mode=='editor') {
$('#iframe_info_editor').contents().find("#info_editor_"+lang).show();
}
} else {
window.active_lang = '';
if(window.info_mode=='editor') {
$('#iframe_info_editor').contents().find("#info_editor").show();
}
}
break;
case 'rooms_menu_list':
get_rooms_menu_list(window.id_vt_rm);
break;
case 'description_product':
elem = 'description';
$('.input_lang[data-target-id="'+elem+'"]').parent().hide();
if(lang!=default_lang) {
$('#'+elem).parent().hide();
$('.input_lang[data-target-id="'+elem+'"][data-lang="'+lang+'"]').parent().show();
if(!bulk) {
try {
window.description_editor_lang[lang].focus();
var length = window.description_editor_lang[lang].getLength();
window.description_editor_lang[lang].setSelection(length);
} catch (e) {}
}
} else {
$('#'+elem).parent().show();
if(!bulk) {
try {
window.description_editor.focus();
var length = window.description_editor.getLength();
window.description_editor.setSelection(length);
} catch (e) {}
}
}
break;
case 'tooltip_text_html':
$('.input_lang[data-target-id="'+elem+'"]').parent().hide();
if(lang!=default_lang) {
$('#'+elem).parent().hide();
$('.input_lang[data-target-id="'+elem+'"][data-lang="'+lang+'"]').parent().show();
if(!bulk) {
try {
window.tooltip_text_editor_lang[lang].focus();
var length = window.tooltip_text_editor_lang[lang].getLength();
window.tooltip_text_editor_lang[lang].setSelection(length);
} catch (e) {}
}
} else {
$('#'+elem).parent().show();
if(!bulk) {
try {
window.tooltip_text_editor.focus();
var length = window.tooltip_text_editor.getLength();
window.tooltip_text_editor.setSelection(length);
} catch (e) {}
}
}
break;
case 'poi_content_html':
$('.input_lang[data-target-id="'+elem+'"]').parent().hide();
if(lang!=default_lang) {
$('#'+elem).parent().hide();
$('.input_lang[data-target-id="'+elem+'"][data-lang="'+lang+'"]').parent().show();
if(!bulk) {
try {
window.html_editor_lang[lang].focus();
var length = window.html_editor_lang[lang].getLength();
window.html_editor_lang[lang].setSelection(length);
} catch (e) {}
}
} else {
$('#'+elem).parent().show();
if(!bulk) {
try {
window.html_editor.focus();
var length = window.html_editor.getLength();
window.html_editor.setSelection(length);
} catch (e) {}
}
}
break;
case 'poi_content_html_sc':
$('.input_lang[data-target-id="'+elem+'"]').hide();
if(lang!=default_lang) {
$('#'+elem).hide();
$('.input_lang[data-target-id="'+elem+'"][data-lang="'+lang+'"]').show();
if(!bulk) {
try {
window.poi_content_html_sc_lang[lang].focus();
window.poi_content_html_sc_lang[lang].navigateFileEnd();
} catch (e) {}
}
} else {
$('#'+elem).show();
if(!bulk) {
try {
window.poi_content_html_sc.focus();
window.poi_content_html_sc.navigateFileEnd();
} catch (e) {}
}
}
break;
case 'poi_embed_content':
$('.input_lang[data-target-id="'+elem+'"]').hide();
if(lang!=default_lang) {
$('#'+elem).hide();
$('.input_lang[data-target-id="'+elem+'"][data-lang="'+lang+'"]').show();
var value = $('.input_lang[data-target-id="'+elem+'"][data-lang="'+lang+'"]').val();
} else {
$('#'+elem).show();
var value = $('#'+elem).val();
}
switch(window.pois[poi_index_edit].embed_type) {
case 'image':
case 'video':
case 'video_transparent':
case 'link':
case 'object3d':
window.pois[poi_index_edit].embed_content = value;
setTimeout(function() {
if(!bulk) render_poi(poi_id_edit,poi_index_edit);
},250);
break;
case 'video_chroma':
$('.input_lang[data-target-id="chroma_color"]').hide();
$('.input_lang[data-target-id="chroma_tolerance"]').hide();
if(lang!=default_lang) {
$('#chroma_color').hide();
$('#chroma_tolerance').hide();
$('.input_lang[data-target-id="chroma_color"][data-lang="'+lang+'"]').show();
$('.input_lang[data-target-id="chroma_tolerance"][data-lang="'+lang+'"]').show();
} else {
$('#chroma_color').show();
$('#chroma_tolerance').show();
}
window.pois[poi_index_edit].embed_content = value;
setTimeout(function() {
if(!bulk) render_poi(poi_id_edit,poi_index_edit);
},250);
break;
}
break;
case 'poi_embed_content_html':
$('.input_lang[data-target-id="'+elem+'"]').parent().hide();
if(lang!=default_lang) {
$('#'+elem).parent().hide();
$('.input_lang[data-target-id="'+elem+'"][data-lang="'+lang+'"]').parent().show();
if(!bulk) {
try {
window.poi_embed_content_html_editor_lang[lang].focus();
var length = window.poi_embed_content_html_editor_lang[lang].getLength();
window.poi_embed_content_html_editor_lang[lang].setSelection(length);
} catch (e) {}
}
} else {
$('#'+elem).parent().show();
if(!bulk) {
try {
window.poi_embed_content_html_editor.focus();
var length = window.poi_embed_content_html_editor.getLength();
window.poi_embed_content_html_editor.setSelection(length);
} catch (e) {}
}
}
setTimeout(function() {
if(!bulk) render_poi(poi_id_edit,poi_index_edit);
},250);
break;
case 'poi_embed_content_html_sc':
$('.input_lang[data-target-id="'+elem+'"]').hide();
if(lang!=default_lang) {
$('#'+elem).hide();
$('.input_lang[data-target-id="'+elem+'"][data-lang="'+lang+'"]').show();
if(!bulk) {
try {
window.poi_embed_content_html_sc_lang[lang].focus();
window.poi_embed_content_html_sc_lang[lang].navigateFileEnd();
} catch (e) {}
}
} else {
$('#'+elem).show();
if(!bulk) {
try {
window.poi_embed_content_html_sc.focus();
window.poi_embed_content_html_sc.navigateFileEnd();
} catch (e) {}
}
}
setTimeout(function() {
if(!bulk) render_poi(poi_id_edit,poi_index_edit);
},250);
break;
case 'poi_label':
$('.input_lang[data-target-id="'+elem+'"]').hide();
if(lang!=default_lang) {
$('#'+elem).hide();
$('.input_lang[data-target-id="'+elem+'"][data-lang="'+lang+'"]').show();
if(!bulk) $('.input_lang[data-target-id="'+elem+'"][data-lang="'+lang+'"]').focus();
} else {
$('#'+elem).show();
if(!bulk) $('#'+elem).focus();
}
setTimeout(function() {
if(!bulk) render_poi(poi_id_edit,poi_index_edit);
},250);
break;
case 'meta_title':
case 'meta_description':
$('.input_lang[data-target-id="'+elem+'"]').hide();
if(lang!=default_lang) {
$('#'+elem).hide();
$('.input_lang[data-target-id="'+elem+'"][data-lang="'+lang+'"]').show();
if(!bulk) $('.input_lang[data-target-id="'+elem+'"][data-lang="'+lang+'"]').focus();
} else {
$('#'+elem).show();
if(!bulk) $('#'+elem).focus();
}
change_meta_title();
change_meta_description();
break;
case 'link':
$('.input_lang[data-target-id="'+elem+'"]').hide();
$('.input_lang[data-target-id="open_link"]').hide();
$('.input_lang[data-target-id="copy_link"]').hide();
$('.input_lang[data-target-id="qrcode_link"]').hide();
$('.input_lang[data-target-id="share_link"]').hide();
if(lang!=default_lang) {
$('#'+elem).hide();
$('#open_link').hide();
$('#copy_link').hide();
$('#qrcode_link').hide();
$('#share_link').hide();
$('.input_lang[data-target-id="'+elem+'"][data-lang="'+lang+'"]').show();
$('.input_lang[data-target-id="open_link"][data-lang="'+lang+'"]').show();
$('.input_lang[data-target-id="copy_link"][data-lang="'+lang+'"]').show();
$('.input_lang[data-target-id="qrcode_link"][data-lang="'+lang+'"]').show();
$('.input_lang[data-target-id="share_link"][data-lang="'+lang+'"]').show();
} else {
$('#'+elem).show();
$('#open_link').show();
$('#copy_link').show();
$('#qrcode_link').show();
$('#share_link').show();
}
break;
case 'link_f':
$('.input_lang[data-target-id="'+elem+'"]').hide();
$('.input_lang[data-target-id="open_link_f"]').hide();
$('.input_lang[data-target-id="copy_link_f"]').hide();
$('.input_lang[data-target-id="qrcode_link_f"]').hide();
if(lang!=default_lang) {
$('#'+elem).hide();
$('#link_open').hide();
$('#link_copy').hide();
$('#link_qr').hide();
$('.input_lang[data-target-id="'+elem+'"][data-lang="'+lang+'"]').show();
$('.input_lang[data-target-id="open_link_f"][data-lang="'+lang+'"]').show();
$('.input_lang[data-target-id="copy_link_f"][data-lang="'+lang+'"]').show();
$('.input_lang[data-target-id="qrcode_link_f"][data-lang="'+lang+'"]').show();
} else {
$('#'+elem).show();
$('#link_open').show();
$('#link_copy').show();
$('#link_qr').show();
}
break;
case 'code':
$('.input_lang[data-target-id="'+elem+'"]').hide();
$('.input_lang[data-target-id="copy_code"]').hide();
if(lang!=default_lang) {
$('#'+elem).hide();
$('#copy_code').hide();
$('.input_lang[data-target-id="'+elem+'"][data-lang="'+lang+'"]').show();
$('.input_lang[data-target-id="copy_code"][data-lang="'+lang+'"]').show();
} else {
$('#'+elem).show();
$('#copy_code').show();
}
break;
case 'poi_content':
$('.input_lang[data-target-id="'+elem+'"]').hide();
if(lang!=default_lang) {
$('#'+elem).hide();
$('.input_lang[data-target-id="'+elem+'"][data-lang="'+lang+'"]').show();
switch(window.pois[poi_index_edit].type) {
case 'link_ext':
case 'link':
if(!bulk) $('.input_lang[data-target-id="'+elem+'"][data-lang="'+lang+'"]').focus();
break;
}
} else {
$('#'+elem).show();
switch(window.pois[poi_index_edit].type) {
case 'link_ext':
case 'link':
if(!bulk) $('#'+elem).focus();
break;
}
}
break;
case 'callout_title':
case 'callout_description':
$('.input_lang[data-target-id="'+elem+'"]').hide();
if(lang!=default_lang) {
$('#'+elem).hide();
$('.input_lang[data-target-id="'+elem+'"][data-lang="'+lang+'"]').show();
if(!bulk) $('.input_lang[data-target-id="'+elem+'"][data-lang="'+lang+'"]').focus();
} else {
$('#'+elem).show();
if(!bulk) $('#'+elem).focus();
}
if(!bulk) {
setTimeout(function() {
change_callout_params();
},250);
}
break;
default:
$('.input_lang[data-target-id="'+elem+'"]').hide();
if(lang!=default_lang) {
$('#'+elem).hide();
$('.input_lang[data-target-id="'+elem+'"][data-lang="'+lang+'"]').show();
if(!bulk) $('.input_lang[data-target-id="'+elem+'"][data-lang="'+lang+'"]').focus();
} else {
$('#'+elem).show();
if(!bulk) $('#'+elem).focus();
}
break;
}
try {
if(lang!=default_lang) {
if(!bulk) {
var value = $('.input_lang[data-target-id="' + elem + '"][data-lang="' + lang + '"]').val();
$('.input_lang[data-target-id="' + elem + '"][data-lang="' + lang + '"]').val('');
$('.input_lang[data-target-id="' + elem + '"][data-lang="' + lang + '"]').val(value);
}
switch (orig_elem) {
case 'description_product':
window.description_editor_lang[lang].root.dataset.placeholder = truncateString(window.description_editor.getText(),100);
break;
case 'tooltip_text_html':
window.tooltip_text_editor_lang[lang].root.dataset.placeholder = truncateString(window.tooltip_text_editor.getText(),100);
break;
case 'poi_content_html':
window.html_editor_lang[lang].root.dataset.placeholder = truncateString(window.html_editor.getText(),100);
break;
case 'poi_embed_content_html':
window.poi_embed_content_html_editor_lang[lang].root.dataset.placeholder = truncateString(window.poi_embed_content_html_editor.getText(),100);
break;
default:
$('.input_lang[data-target-id="'+elem+'"][data-lang="'+lang+'"]').attr('placeholder',$('#'+elem).val());
break;
}
} else {
if(!bulk) {
var value = $('#' + elem).val();
$('#' + elem).val('');
$('#' + elem).val(value);
}
}
} catch (e) {}
$('.lang_input_switcher[data-elem="'+orig_elem+'"] .translate_deepl_btn').hide();
if (window.deepl===1 && (($('#'+elem).is(':input:not([readonly]):not(#poi_content):not(#poi_embed_content):not(#poi_gm_map):not(#poi_gm_street):not(#link):not(#link_f):not(#code)')) || (orig_elem === 'description_product') || (orig_elem === 'tooltip_text_html') || (orig_elem === 'poi_content_html') || (orig_elem === 'poi_embed_content_html'))) {
if(lang!=default_lang) {
var value_check = '';
switch (orig_elem) {
case 'description_product':
try {
var value_check = window.description_editor.root.innerHTML;
} catch (e) {}
break;
case 'tooltip_text_html':
try {
var value_check = window.tooltip_text_editor.root.innerHTML;
} catch (e) {}
break;
case 'poi_content_html':
try {
var value_check = window.html_editor.root.innerHTML;
} catch (e) {}
break;
case 'poi_embed_content_html':
try {
var value_check = window.poi_embed_content_html_editor.root.innerHTML;
} catch (e) {}
break;
default:
try {
var value_check = $('#'+elem).val();
} catch (e) {}
break;
}
if(value_check==='<p><br></p>') value_check='';
if(value_check!='') {
$('.lang_input_switcher[data-elem="'+orig_elem+'"] .translate_deepl_btn').removeClass('disabled');
$('.lang_input_switcher[data-elem="'+orig_elem+'"] .translate_deepl_btn').css('display','inline-block');
} else {
$('.lang_input_switcher[data-elem="'+orig_elem+'"] .translate_deepl_btn').addClass('disabled');
$('.lang_input_switcher[data-elem="'+orig_elem+'"] .translate_deepl_btn').css('display','inline-block');
}
}
}
if(!bulk) {
$('.lang_input_switcher:not([data-elem="'+orig_elem+'"])').each(function() {
var elem_d = $(this).attr('data-elem');
switch_input_language(lang,default_lang,elem_d,true);
});
}
}
function truncateString(str, num) {
if (str.length <= num) {
return str;
}
return str.slice(0, num) + '...';
}
window.switch_language = function (lang) {
$.ajax({
url: "ajax/switch_language.php",
type: "POST",
data: {
lang: lang
},
async: false,
success: function () {
location.reload();
}
});
}
window.assign_vt_editor = function (id,checked) {
$.ajax({
url: "ajax/assign_vt_editor.php",
type: "POST",
data: {
id_vt: id,
id_user: window.id_user_edit,
checked: checked
},
async: false,
success: function() {
if(checked==1) {
$('#assign_vt_table').DataTable().ajax.reload();
}
}
});
}
window.assign_user_editor = function (id,checked) {
$.ajax({
url: "ajax/assign_vt_editor.php",
type: "POST",
data: {
id_vt: window.id_virtualtour,
id_user: id,
checked: checked
},
async: false,
success: function() {
if(checked==1) {
$('#assign_editors_table').DataTable().ajax.reload();
}
}
});
}
window.set_permission_vt_editor = function (id,field,checked) {
$.ajax({
url: "ajax/set_permission_vt_editor.php",
type: "POST",
data: {
id_vt: id,
id_user: window.id_user_edit,
field: field,
checked: checked
},
async: true,
success: function() {}
});
}
window.set_permission_user_editor = function (id,field,checked) {
$.ajax({
url: "ajax/set_permission_vt_editor.php",
type: "POST",
data: {
id_vt: window.id_virtualtour,
id_user: id,
field: field,
checked: checked
},
async: true,
success: function() {}
});
}
window.change_poi_view_type = function () {
var view_type = $('#view_type option:selected').attr('id');
switch (view_type) {
case '0':
$('#box_pos').prop('disabled',true);
$('#box_max_width').prop('disabled',true);
$('#box_maximize').prop('disabled',true);
break;
case '1':
case '2':
$('#box_pos').prop('disabled',false);
$('#box_max_width').prop('disabled',false);
$('#box_maximize').prop('disabled',false);
break;
}
}
window.change_form_field_type = function(id) {
var type = $('#form_field_type_'+id+' option:selected').attr('id');
switch(type) {
case 'select':
$('#form_field_label_'+id).attr('placeholder','Label;Option1;Option2;Option3;...');
break;
default:
$('#form_field_label_'+id).attr('placeholder','');
break;
}
}
window.session_library = function (w) {
$.ajax({
url: "ajax/set_session_library.php",
type: "POST",
async: true,
data: {
w: w
},
success: function (json) {
location.reload();
}
});
}
window.session_statistics = function (w) {
$.ajax({
url: "ajax/set_session_statistics.php",
type: "POST",
async: true,
data: {
w: w
},
success: function (json) {
location.reload();
}
});
}
window.landing_mode = function (w) {
switch(w) {
case 'editor':
$('.editor_mode').show();
$('.html_mode').hide();
$('#btn_editor_mode').addClass('btn-primary').removeClass('btn-outline-primary');
$('#btn_html_mode').removeClass('btn-primary').addClass('btn-outline-primary');
break;
case 'html':
$('.editor_mode').hide();
$('.html_mode').show();
$('#btn_editor_mode').removeClass('btn-primary').addClass('btn-outline-primary');
$('#btn_html_mode').addClass('btn-primary').removeClass('btn-outline-primary');
break;
}
}
window.save_preset = function (type) {
var id_preset = $('#presets option:selected').attr('id');
if(id_preset==0) {
$('#name_preset').val('');
$('#btn_add_new_preset').attr('onclick','add_preset(\''+type+'\');')
$('#modal_new_preset').modal('show');
} else {
$('#modal_save_preset').modal('show');
}
}
window.save_exist_preset = function (type) {
$('#modal_save_preset button').addClass('disabled');
var id_preset = $('#presets option:selected').attr('id');
var allow_pitch = $('#allow_pitch').is(':checked');
var allow_hfov = $('#allow_hfov').is(':checked');
var min_pitch = $('#min_pitch').val();
var max_pitch = $('#max_pitch').val();
var min_yaw = $('#min_yaw').val();
var max_yaw = $('#max_yaw').val();
var haov = $('#haov').val();
var vaov = $('#vaov').val();
var hfov = $('#hfov').val();
var h_pitch = $('#h_pitch').val();
var h_roll = $('#h_roll').val();
var background_color = window.background_color;
var value = {};
value['allow_pitch'] = allow_pitch;
value['allow_hfov'] = allow_hfov;
value['min_pitch'] = min_pitch;
value['max_pitch'] = max_pitch;
value['min_yaw'] = min_yaw;
value['max_yaw'] = max_yaw;
value['haov'] = haov;
value['vaov'] = vaov;
value['hfov'] = hfov;
value['h_pitch'] = h_pitch;
value['h_roll'] = h_roll;
value['background_color'] = background_color;
var value_json = JSON.stringify(value);
$.ajax({
url: "ajax/save_preset.php",
type: "POST",
async: true,
data: {
id: id_preset,
type: type,
value: value_json
},
success: function (json) {
$("#presets option[id='"+id_preset+"']").attr('data-value',value_json);
$('#modal_save_preset button').removeClass('disabled');
$('#modal_save_preset').modal('hide');
}
});
}
window.add_preset = function (type) {
var name = $('#name_preset').val();
if(name!='') {
$('#modal_new_preset button').addClass('disabled');
var allow_pitch = $('#allow_pitch').is(':checked');
var allow_hfov = $('#allow_hfov').is(':checked');
var min_pitch = $('#min_pitch').val();
var max_pitch = $('#max_pitch').val();
var min_yaw = $('#min_yaw').val();
var max_yaw = $('#max_yaw').val();
var haov = $('#haov').val();
var vaov = $('#vaov').val();
var hfov = $('#hfov').val();
var h_pitch = $('#h_pitch').val();
var h_roll = $('#h_roll').val();
var background_color = window.background_color;
var value = {};
value['allow_pitch'] = allow_pitch;
value['allow_hfov'] = allow_hfov;
value['min_pitch'] = min_pitch;
value['max_pitch'] = max_pitch;
value['min_yaw'] = min_yaw;
value['max_yaw'] = max_yaw;
value['haov'] = haov;
value['vaov'] = vaov;
value['hfov'] = hfov;
value['h_pitch'] = h_pitch;
value['h_roll'] = h_roll;
value['background_color'] = background_color;
var value_json = JSON.stringify(value);
$.ajax({
url: "ajax/add_preset.php",
type: "POST",
async: true,
data: {
id_virtualtour: window.id_virtualtour,
name: name,
type: type,
value: value_json
},
success: function (json) {
var rsp = JSON.parse(json);
if(rsp.status=='ok') {
var id=rsp.id;
$('#presets').append("<option data-value='"+value_json+"' id='"+id+"'>"+name+"</option>");
$("#presets option").prop("selected", false);
$("#presets option[id='"+id+"']").prop("selected", true);
$('#btn_apply_preset_room').removeClass('disabled');
$('#btn_apply_preset_tour').removeClass('disabled');
$('#btn_delete_preset').removeClass('disabled');
}
$('#modal_new_preset button').removeClass('disabled');
$('#modal_new_preset').modal("hide");
}
});
}
}
window.change_preset = function () {
var id_preset = $('#presets option:selected').attr('id');
if(id_preset==0) {
$('#btn_apply_preset_room').addClass('disabled');
$('#btn_apply_preset_tour').addClass('disabled');
$('#btn_delete_preset').addClass('disabled');
} else {
$('#btn_apply_preset_room').removeClass('disabled');
$('#btn_apply_preset_tour').removeClass('disabled');
$('#btn_delete_preset').removeClass('disabled');
}
}
window.delete_preset = function (type) {
var id_preset = $('#presets option:selected').attr('id');
var retVal = confirm(window.backend_labels.delete_sure_msg);
if( retVal == true ) {
$('#btn_apply_preset_room').addClass('disabled');
$('#btn_apply_preset_tour').addClass('disabled');
$('#btn_delete_preset').addClass("disabled");
$.ajax({
url: "ajax/delete_preset.php",
type: "POST",
data: {
id: id_preset
},
async: true,
success: function (json) {
var rsp = JSON.parse(json);
if (rsp.status == "ok") {
$("#presets option[id='"+id_preset+"']").remove();
$("#presets option").prop("selected", false);
$("#presets option[id='0']").prop("selected", true);
}
}
});
} else {
return false;
}
};
window.change_duplicate_items_vt = function () {
var duplicate_rooms = $('#duplicate_rooms').is(':checked');
if(!duplicate_rooms) {
$('#duplicate_markers').prop('checked',false);
$('#duplicate_markers').prop('disabled',true);
$('#duplicate_pois').prop('checked',false);
$('#duplicate_pois').prop('disabled',true);
$('#duplicate_presentation').prop('checked',false);
$('#duplicate_presentation').prop('disabled',true);
} else {
$('#duplicate_markers').prop('disabled',false);
$('#duplicate_pois').prop('disabled',false);
$('#duplicate_presentation').prop('disabled',false);
}
};
window.change_scale_p = function () {
var scale = $('#scale').is(':checked');
if(scale) {
window.pois[window.poi_index_edit].scale = 1;
} else {
window.pois[window.poi_index_edit].scale = 0;
}
render_poi(poi_id_edit,poi_index_edit);
}
window.change_scale_m = function () {
var scale = $('#scale').is(':checked');
if(scale) {
window.markers[window.marker_index_edit].scale = 1;
} else {
window.markers[window.marker_index_edit].scale = 0;
}
render_marker(marker_id_edit,marker_index_edit);
}
window.change_transform3d = function () {
var transform3d = $('#transform3d').is(':checked');
if(transform3d) {
window.pois[window.poi_index_edit].transform3d = 1;
var yaw = parseFloat(window.pois[window.poi_index_edit].yaw);
var pitch = parseFloat(window.pois[window.poi_index_edit].pitch);
var embed_size = window.pois[window.poi_index_edit].embed_size;
var tmp = embed_size.split(",");
var ew = parseFloat(tmp[0])/30;
var eh = parseFloat(tmp[1])/30;
var poi_embed_helpers = [[0,0],[0,0],[0,0],[0,0]];
poi_embed_helpers[0][0] = pitch + eh;
poi_embed_helpers[0][1] = yaw - ew;
poi_embed_helpers[1][0] = pitch - eh;
poi_embed_helpers[1][1] = yaw - ew;
poi_embed_helpers[2][0] = pitch + eh;
poi_embed_helpers[2][1] = yaw + ew;
poi_embed_helpers[3][0] = pitch - eh;
poi_embed_helpers[3][1] = yaw + ew;
var embed_coords = poi_embed_helpers[0][0]+","+poi_embed_helpers[0][1]+"|"+poi_embed_helpers[1][0]+","+poi_embed_helpers[1][1]+"|"+poi_embed_helpers[2][0]+","+poi_embed_helpers[2][1]+"|"+poi_embed_helpers[3][0]+","+poi_embed_helpers[3][1];
window.pois[window.poi_index_edit].embed_coords = embed_coords;
} else {
window.pois[window.poi_index_edit].transform3d = 0;
window.pois[window.poi_index_edit].embed_size = window.pois_initial[window.poi_index_edit].embed_size;
}
render_poi_move(window.poi_id_edit,window.poi_index_edit);
move_p(window.poi_id_edit,window.poi_index_edit,null);
}
window.minimize_box_edit = function () {
$('.tab-content').toggle();
}
window.maximize_box_edit = function () {
if(!$('.tab-content').is(':visible')) {
setTimeout(function () {
$('.tab-content').show();
},150);
}
}
window.change_product_type = function () {
var type = $('#type option:selected').attr('id');
switch (type) {
case 't_none':
$('#link').prop('disabled',true);
$('#button_text').prop('disabled',true);
$('.input_lang[data-target-id="button_text"]').prop('disabled',true);
$('#button_background').prop('disabled',true);
$('#button_color').prop('disabled',true);
$('#button_text').attr('placeholder','');
$('#custom_currency').prop('disabled',false);
break;
case 't_cart':
$('#link').prop('disabled',true);
$('#button_text').prop('disabled',false);
$('.input_lang[data-target-id="button_text"]').prop('disabled',false);
$('#button_background').prop('disabled',false);
$('#button_color').prop('disabled',false);
$('#custom_currency').prop('disabled',true);
$('#button_text').attr('placeholder',window.cart_ph);
break;
case 't_link':
case 't_popup':
$('#link').prop('disabled',false);
$('#button_text').prop('disabled',false);
$('.input_lang[data-target-id="button_text"]').prop('disabled',false);
$('#button_background').prop('disabled',false);
$('#button_color').prop('disabled',false);
$('#custom_currency').prop('disabled',false);
$('#button_text').attr('placeholder',window.buy_ph);
break;
}
}
function wizard_progress_bar(index) {
const currentStepElement = wizard_tour.currentStep.el;
const header = currentStepElement.querySelector('.shepherd-content');
const progress = document.createElement('div');
const innerBar = document.createElement('span');
const progressPercentage = ((index)/34)*100 + '%';
progress.className='shepherd-progress-bar';
innerBar.style.width=progressPercentage;
progress.appendChild(innerBar);
header.insertBefore(progress, currentStepElement.querySelector('.shepherd-text'));
$('.shepherd-header').append('<button onclick="close_wizard()" aria-label="Close Tour" class="shepherd-cancel-icon" type="button"><span aria-hidden="true">×</span></button>');
}
window.close_wizard = function() {
var r = confirm(window.backend_labels.wizard_close);
if (r == true) {
wizard_tour.cancel();
location.href = 'index.php?p=dashboard';
}
}
window.create_wizard = function (initial_index) {
var windowWidth = $(window).width();
if(windowWidth<=767) {
var small_b = true;
} else {
var small_b = false;
}
wizard_tour = new Shepherd.Tour({
defaultStepOptions: {
cancelIcon: {
enabled: false
},
scrollTo: { behavior: 'smooth', block: 'center' },
},
useModalOverlay: true
});
if(initial_index<1) {
wizard_steps[0] = wizard_tour.addStep({
title: '1 - ' + window.backend_labels.wizard_title_1,
text: window.backend_labels.wizard_text_1,
attachTo: {
element: '#virtual_tours_menu_item',
on: (small_b) ? 'bottom' : 'right'
},
modalOverlayOpeningRadius: 5,
advanceOn: {selector: '#virtual_tours_menu_item', event: 'click'},
popperOptions: {
modifiers: [{name: 'offset', options: {offset: [0, 15]}}]
},
when: {
show() {
wizard_progress_bar(1);
}
},
});
}
if(initial_index<2) {
wizard_steps[1] = wizard_tour.addStep({
title: '2 - ' + window.backend_labels.wizard_title_1,
text: window.backend_labels.wizard_text_2,
attachTo: {
element: '#list_tour_menu_item',
on: (small_b) ? 'bottom' : 'right'
},
modalOverlayOpeningRadius: 5,
beforeShowPromise: function() {
return new Promise(function(resolve) {
setTimeout(function () {
resolve();
},250);
});
},
popperOptions: {
modifiers: [{name: 'offset', options: {offset: [0, 15]}}]
},
when: {
show() {
wizard_progress_bar(2);
}
},
});
}
if(initial_index<3) {
wizard_steps[2] = wizard_tour.addStep({
title: '3 - ' + window.backend_labels.wizard_title_1,
text: window.backend_labels.wizard_text_3,
attachTo: {
element: '#add_vt_form',
on: 'bottom'
},
modalOverlayOpeningRadius: 5,
canClickTarget: false,
buttons: [
{
text: 'Continue',
action: wizard_tour.next
}
],
popperOptions: {
modifiers: [{name: 'offset', options: {offset: [0, 15]}}]
},
when: {
show() {
wizard_progress_bar(3);
}
},
});
}
if(initial_index<4) {
wizard_steps[3] = wizard_tour.addStep({
title: '4 - ' + window.backend_labels.wizard_title_1,
text: window.backend_labels.wizard_text_4,
attachTo: {
element: '#name_div',
on: 'bottom'
},
modalOverlayOpeningPadding: 10,
modalOverlayOpeningRadius: 5,
scrollTo: false,
buttons: [{
text: window.backend_labels.wizard_continue,
action: function () {
if($('#name').val()=='') {
$('#name').focus();
return false;
} else {
Shepherd.activeTour.next();
}
}
}],
when: {
show: function() {
const vElement = this.getElement();
if (vElement) vElement.focus = () => {};
wizard_progress_bar(4);
setTimeout(function () {
$('#name').focus();
},400);
}
},
popperOptions: {
modifiers: [{name: 'offset', options: {offset: [0, 25]}}]
}
});
}
if(initial_index<5) {
wizard_steps[4] = wizard_tour.addStep({
title: '5 - ' + window.backend_labels.wizard_title_1,
text: window.backend_labels.wizard_text_5,
attachTo: {
element: '#btn_create_tour',
on: (small_b) ? 'bottom' : 'left'
},
modalOverlayOpeningRadius: 5,
scrollTo: false,
popperOptions: {
modifiers: [{name: 'offset', options: {offset: [0, 25]}}]
},
when: {
show() {
wizard_progress_bar(5);
}
},
});
}
if(initial_index<6) {
wizard_steps[5] = wizard_tour.addStep({
title: '6 - ' + window.backend_labels.wizard_title_2,
text: window.backend_labels.wizard_text_6,
attachTo: {
element: '#room_menu_item',
on: (small_b) ? 'bottom' : 'right'
},
modalOverlayOpeningRadius: 5,
popperOptions: {
modifiers: [{name: 'offset', options: {offset: [0, 25]}}]
},
beforeShowPromise: function() {
if(small_b) {
if(!$('#collapse_vt').hasClass('show')) {
$('#virtual_tours_menu_item').click();
}
}
return new Promise(function(resolve) {
setTimeout(function () {
resolve();
},250);
});
},
when: {
show() {
wizard_progress_bar(6);
}
},
});
}
if(initial_index<7) {
wizard_steps[6] = wizard_tour.addStep({
title: '7 - ' + window.backend_labels.wizard_title_2,
text: window.backend_labels.wizard_text_7,
attachTo: {
element: '#btn_modal_create_room',
on: (small_b) ? 'bottom' : 'left'
},
scrollTo: false,
modalOverlayOpeningRadius: 20,
advanceOn: {selector: '#btn_modal_create_room', event: 'click'},
popperOptions: {
modifiers: [{name: 'offset', options: {offset: [0, 30]}}]
},
when: {
show() {
wizard_progress_bar(7);
}
},
});
}
if(initial_index<8) {
wizard_steps[7] = wizard_tour.addStep({
title: '8 - ' + window.backend_labels.wizard_title_2,
text: window.backend_labels.wizard_text_8,
attachTo: {
element: '#name_div',
on: (small_b) ? 'top' : 'bottom'
},
modalOverlayOpeningPadding: 5,
modalOverlayOpeningRadius: 5,
scrollTo: false,
beforeShowPromise: function() {
return new Promise(function(resolve) {
setTimeout(function () {
resolve();
},250);
});
},
buttons: [{
text: window.backend_labels.wizard_continue,
action: function () {
if($('#name').val()=='') {
$('#name').focus();
return false;
} else {
Shepherd.activeTour.next();
}
}
}],
when: {
show: function() {
const vElement = this.getElement();
if (vElement) vElement.focus = () => {};
wizard_progress_bar(8);
setTimeout(function () {
$('#name').focus();
},400);
}
},
popperOptions: {
modifiers: [{name: 'offset', options: {offset: [0, 20]}}]
}
});
}
if(initial_index<9) {
wizard_steps[8] = wizard_tour.addStep({
title: '9 - ' + window.backend_labels.wizard_title_2,
text: window.backend_labels.wizard_text_9,
attachTo: {
element: '#frm',
on: 'top'
},
scrollTo: false,
modalOverlayOpeningPadding: 5,
modalOverlayOpeningRadius: 5,
popperOptions: {
modifiers: [{name: 'offset', options: {offset: [0, 20]}}]
},
when: {
show() {
wizard_progress_bar(9);
}
},
});
}
if(initial_index<10) {
wizard_steps[9] = wizard_tour.addStep({
title: '10 - ' + window.backend_labels.wizard_title_2,
text: window.backend_labels.wizard_text_10,
attachTo: {
element: '#btn_create_room',
on: 'top'
},
scrollTo: true,
modalOverlayOpeningRadius: 5,
popperOptions: {
modifiers: [{name: 'offset', options: {offset: [0, 15]}}]
},
when: {
show() {
wizard_progress_bar(10);
}
},
});
}
if(initial_index<11) {
wizard_steps[10] = wizard_tour.addStep({
title: '11 - ' + window.backend_labels.wizard_title_2,
text: window.backend_labels.wizard_text_11,
scrollTo: false,
modalOverlayOpeningRadius: 5,
buttons: [{
text: window.backend_labels.wizard_continue,
action: wizard_tour.next
}],
popperOptions: {
modifiers: [{name: 'offset', options: {offset: [0, 0]}}]
},
when: {
show() {
wizard_progress_bar(11);
}
},
});
}
if(initial_index<12) {
wizard_steps[11] = wizard_tour.addStep({
title: '12 - ' + window.backend_labels.wizard_title_3,
text: window.backend_labels.wizard_text_6,
attachTo: {
element: '#room_menu_item',
on: (small_b) ? 'bottom' : 'right'
},
modalOverlayOpeningRadius: 5,
popperOptions: {
modifiers: [{name: 'offset', options: {offset: [0, 25]}}]
},
beforeShowPromise: function() {
if(small_b) {
if(!$('#collapse_vt').hasClass('show')) {
$('#virtual_tours_menu_item').click();
}
}
return new Promise(function(resolve) {
setTimeout(function () {
resolve();
},250);
});
},
when: {
show() {
wizard_progress_bar(12);
}
},
});
}
if(initial_index<13) {
wizard_steps[12] = wizard_tour.addStep({
title: '13 - ' + window.backend_labels.wizard_title_3,
text: window.backend_labels.wizard_text_7,
attachTo: {
element: '#btn_modal_create_room',
on: (small_b) ? 'bottom' : 'left'
},
scrollTo: false,
modalOverlayOpeningRadius: 20,
advanceOn: {selector: '#btn_modal_create_room', event: 'click'},
popperOptions: {
modifiers: [{name: 'offset', options: {offset: [0, 30]}}]
},
when: {
show() {
wizard_progress_bar(13);
}
},
});
}
if(initial_index<14) {
wizard_steps[13] = wizard_tour.addStep({
title: '14 - ' + window.backend_labels.wizard_title_3,
text: window.backend_labels.wizard_text_8,
attachTo: {
element: '#name_div',
on: (small_b) ? 'top' : 'bottom'
},
scrollTo: false,
modalOverlayOpeningPadding: 5,
modalOverlayOpeningRadius: 5,
beforeShowPromise: function() {
return new Promise(function(resolve) {
setTimeout(function () {
resolve();
},250);
});
},
buttons: [{
text: window.backend_labels.wizard_continue,
action: function () {
if($('#name').val()=='') {
$('#name').focus();
return false;
} else {
Shepherd.activeTour.next();
}
}
}],
when: {
show: function() {
const vElement = this.getElement();
if (vElement) vElement.focus = () => {};
wizard_progress_bar(14);
setTimeout(function () {
$('#name').focus();
},400);
}
},
popperOptions: {
modifiers: [{name: 'offset', options: {offset: [0, 20]}}]
}
});
}
if(initial_index<15) {
wizard_steps[14] = wizard_tour.addStep({
title: '15 - ' + window.backend_labels.wizard_title_3,
text: window.backend_labels.wizard_text_9,
attachTo: {
element: '#frm',
on: 'top'
},
scrollTo: false,
modalOverlayOpeningPadding: 5,
modalOverlayOpeningRadius: 5,
popperOptions: {
modifiers: [{name: 'offset', options: {offset: [0, 20]}}]
},
when: {
show() {
wizard_progress_bar(15);
}
},
});
}
if(initial_index<16) {
wizard_steps[15] = wizard_tour.addStep({
title: '16 - ' + window.backend_labels.wizard_title_3,
text: window.backend_labels.wizard_text_10,
scrollTo: true,
attachTo: {
element: '#btn_create_room',
on: 'top'
},
modalOverlayOpeningRadius: 5,
popperOptions: {
modifiers: [{name: 'offset', options: {offset: [0, 15]}}]
},
when: {
show() {
wizard_progress_bar(16);
}
},
});
}
if(initial_index<17) {
wizard_steps[16] = wizard_tour.addStep({
title: '17 - ' + window.backend_labels.wizard_title_3,
text: window.backend_labels.wizard_text_17,
scrollTo: false,
modalOverlayOpeningRadius: 5,
buttons: [{
text: window.backend_labels.wizard_continue,
action: wizard_tour.next
}],
popperOptions: {
modifiers: [{name: 'offset', options: {offset: [0, 0]}}]
},
when: {
show() {
wizard_progress_bar(17);
}
},
});
}
if(initial_index<18) {
wizard_steps[17] = wizard_tour.addStep({
title: '18 - ' + window.backend_labels.wizard_title_4,
text: window.backend_labels.wizard_text_18,
attachTo: {
element: '#markers_menu_item',
on: (small_b) ? 'bottom' : 'right'
},
modalOverlayOpeningRadius: 5,
popperOptions: {
modifiers: [{name: 'offset', options: {offset: [0, 25]}}]
},
beforeShowPromise: function() {
if(small_b) {
if(!$('#collapse_vt').hasClass('show')) {
$('#virtual_tours_menu_item').click();
}
}
return new Promise(function(resolve) {
setTimeout(function () {
resolve();
},250);
});
},
when: {
show() {
wizard_progress_bar(18);
}
},
});
}
if(initial_index<19) {
wizard_steps[18] = wizard_tour.addStep({
title: '19 - ' + window.backend_labels.wizard_title_4,
text: window.backend_labels.wizard_text_19,
attachTo: {
element: '#rooms_slider_m .slick-slide:first-child',
on: 'bottom'
},
modalOverlayOpeningRadius: 5,
popperOptions: {
modifiers: [{name: 'offset', options: {offset: [0, 15]}}]
},
when: {
show() {
wizard_progress_bar(19);
}
},
});
}
if(initial_index<20) {
wizard_steps[19] = wizard_tour.addStep({
title: '20 - ' + window.backend_labels.wizard_title_4,
text: window.backend_labels.wizard_text_20,
attachTo: {
element: '#panorama_markers .pnlm-render-container canvas',
on: (small_b) ? 'top' : 'bottom'
},
modalOverlayOpeningRadius: 5,
buttons: [{
text: window.backend_labels.wizard_continue,
action: wizard_tour.next
}],
popperOptions: {
modifiers: [{name: 'offset', options: {offset: [0, 15]}}]
},
when: {
show() {
wizard_progress_bar(20);
}
},
});
}
if(initial_index<21) {
wizard_steps[20] = wizard_tour.addStep({
title: '21 - ' + window.backend_labels.wizard_title_4,
text: window.backend_labels.wizard_text_7,
attachTo: {
element: '#btn_add_marker',
on: (small_b) ? 'bottom' : 'left'
},
modalOverlayOpeningRadius: 20,
when: {
show: function() {
wizard_progress_bar(21);
$('#btn_add_marker').removeClass('disabled');
}
},
advanceOn: {selector: '#btn_add_marker', event: 'click'},
popperOptions: {
modifiers: [{name: 'offset', options: {offset: [0, 15]}}]
}
});
}
if(initial_index<22) {
wizard_steps[21] = wizard_tour.addStep({
title: '22 - ' + window.backend_labels.wizard_title_4,
text: window.backend_labels.wizard_text_22,
attachTo: {
element: '#room_target_add_div',
on: 'bottom'
},
canClickTarget: false,
modalOverlayOpeningPadding: 5,
modalOverlayOpeningRadius: 5,
buttons: [{
text: window.backend_labels.wizard_continue,
action: wizard_tour.next
}],
beforeShowPromise: function() {
return new Promise(function(resolve) {
setTimeout(function () {
resolve();
},250);
});
},
popperOptions: {
modifiers: [{name: 'offset', options: {offset: [0, 20]}}]
},
when: {
show() {
wizard_progress_bar(22);
}
},
});
}
if(initial_index<23) {
wizard_steps[22] = wizard_tour.addStep({
title: '23 - ' + window.backend_labels.wizard_title_4,
text: window.backend_labels.wizard_text_23,
attachTo: {
element: '#btn_new_marker',
on: (small_b) ? 'top' : 'left'
},
modalOverlayOpeningRadius: 5,
popperOptions: {
modifiers: [{name: 'offset', options: {offset: [0, 15]}}]
},
when: {
show() {
wizard_progress_bar(23);
}
},
});
}
if(initial_index<24) {
wizard_steps[23] = wizard_tour.addStep({
title: '24 - ' + window.backend_labels.wizard_title_4,
text: window.backend_labels.wizard_text_24,
attachTo: {
element: '.div_marker_wrapper:first-child',
on: 'bottom'
},
scrollTo: false,
canClickTarget: false,
modalOverlayOpeningPadding: 10,
modalOverlayOpeningRadius: 20,
buttons: [{
text: window.backend_labels.wizard_continue,
action: wizard_tour.next
}],
popperOptions: {
modifiers: [{name: 'offset', options: {offset: [0, 25]}}]
},
when: {
show() {
wizard_progress_bar(24);
}
},
});
}
if(initial_index<25) {
wizard_steps[24] = wizard_tour.addStep({
title: '25 - ' + window.backend_labels.wizard_title_6,
text: window.backend_labels.wizard_text_26,
attachTo: {
element: '#pois_menu_item',
on: (small_b) ? 'bottom' : 'right'
},
modalOverlayOpeningRadius: 5,
popperOptions: {
modifiers: [{name: 'offset', options: {offset: [0, 25]}}]
},
beforeShowPromise: function() {
if(small_b) {
if(!$('#collapse_vt').hasClass('show')) {
$('#virtual_tours_menu_item').click();
}
}
return new Promise(function(resolve) {
setTimeout(function () {
resolve();
},250);
});
},
when: {
show() {
wizard_progress_bar(25);
}
},
});
}
if(initial_index<26) {
wizard_steps[25] = wizard_tour.addStep({
title: '26 - ' + window.backend_labels.wizard_title_6,
text: window.backend_labels.wizard_text_27,
attachTo: {
element: '#rooms_slider_p .slick-slide:first-child',
on: 'bottom'
},
modalOverlayOpeningRadius: 5,
popperOptions: {
modifiers: [{name: 'offset', options: {offset: [0, 15]}}]
},
when: {
show() {
wizard_progress_bar(26);
}
},
});
}
if(initial_index<27) {
wizard_steps[26] = wizard_tour.addStep({
title: '27 - ' + window.backend_labels.wizard_title_6,
text: window.backend_labels.wizard_text_28,
attachTo: {
element: '#panorama_pois .pnlm-render-container canvas',
on: (small_b) ? 'top' : 'bottom'
},
modalOverlayOpeningRadius: 5,
buttons: [{
text: window.backend_labels.wizard_continue,
action: wizard_tour.next
}],
popperOptions: {
modifiers: [{name: 'offset', options: {offset: [0, 15]}}]
},
when: {
show() {
wizard_progress_bar(27);
}
},
});
}
if(initial_index<28) {
wizard_steps[27] = wizard_tour.addStep({
title: '28 - ' + window.backend_labels.wizard_title_6,
text: window.backend_labels.wizard_text_7,
attachTo: {
element: '#btn_add_poi',
on: (small_b) ? 'bottom' : 'left'
},
modalOverlayOpeningRadius: 20,
when: {
show: function() {
wizard_progress_bar(28);
$('#btn_add_poi').removeClass('disabled');
}
},
advanceOn: {selector: '#btn_add_poi', event: 'click'},
popperOptions: {
modifiers: [{name: 'offset', options: {offset: [0, 15]}}]
}
});
}
if(initial_index<29) {
wizard_steps[28] = wizard_tour.addStep({
title: '29 - ' + window.backend_labels.wizard_title_6,
text: window.backend_labels.wizard_text_29,
attachTo: {
element: '#modal_add_poi .modal-body',
on: (small_b) ? 'top' : 'bottom'
},
modalOverlayOpeningRadius: 5,
canClickTarget: false,
buttons: [
{
text: 'Continue',
action: wizard_tour.next
}
],
popperOptions: {
modifiers: [{name: 'offset', options: {offset: [0, 15]}}]
},
when: {
show() {
wizard_progress_bar(29);
}
},
});
}
if(initial_index<30) {
wizard_steps[29] = wizard_tour.addStep({
title: '30 - ' + window.backend_labels.wizard_title_6,
text: window.backend_labels.wizard_text_30,
attachTo: {
element: '#btn_new_poi_image',
on: (small_b) ? 'top' : 'bottom'
},
modalOverlayOpeningRadius: 5,
when: {
show: function() {
wizard_progress_bar(30);
}
},
advanceOn: {selector: '#btn_new_poi_image', event: 'click'},
popperOptions: {
modifiers: [{name: 'offset', options: {offset: [0, 15]}}]
}
});
}
if(initial_index<31) {
wizard_steps[30] = wizard_tour.addStep({
title: '31 - ' + window.backend_labels.wizard_title_6,
text: window.backend_labels.wizard_text_31,
attachTo: {
element: '#frm_edit',
on: 'top'
},
scrollTo: false,
modalOverlayOpeningPadding: 5,
modalOverlayOpeningRadius: 5,
popperOptions: {
modifiers: [{name: 'offset', options: {offset: [0, 20]}}]
},
beforeShowPromise: function() {
return new Promise(function(resolve) {
setTimeout(function () {
resolve();
},1000);
});
},
when: {
show() {
wizard_progress_bar(31);
}
}
});
}
if(initial_index<32) {
wizard_steps[31] = wizard_tour.addStep({
title: '32 - ' + window.backend_labels.wizard_title_6,
text: window.backend_labels.wizard_text_32,
attachTo: {
element: '#confirm_edit .btn_confirm',
on: 'bottom'
},
modalOverlayOpeningRadius: 10,
when: {
show: function() {
wizard_progress_bar(32);
}
},
advanceOn: {selector: '#confirm_edit .btn_confirm', event: 'click'},
popperOptions: {
modifiers: [{name: 'offset', options: {offset: [0, 15]}}]
}
});
}
if(initial_index<33) {
wizard_steps[32] = wizard_tour.addStep({
title: '33 - ' + window.backend_labels.wizard_title_6,
text: window.backend_labels.wizard_text_33,
attachTo: {
element: '.div_poi_wrapper:first-child',
on: 'bottom'
},
beforeShowPromise: function() {
return new Promise(function(resolve) {
setTimeout(function () {
resolve();
},250);
});
},
scrollTo: false,
canClickTarget: false,
modalOverlayOpeningPadding: 10,
modalOverlayOpeningRadius: 20,
buttons: [{
text: window.backend_labels.wizard_continue,
action: wizard_tour.next
}],
popperOptions: {
modifiers: [{name: 'offset', options: {offset: [0, 25]}}]
},
when: {
show() {
wizard_progress_bar(33);
}
},
});
}
if(initial_index<34) {
wizard_steps[33] = wizard_tour.addStep({
title: '34 - ' + window.backend_labels.wizard_title_5,
text: window.backend_labels.wizard_text_25,
attachTo: {
element: '#preview_menu_item',
on: (small_b) ? 'bottom' : 'right'
},
scrollTo: true,
modalOverlayOpeningRadius: 5,
popperOptions: {
modifiers: [{name: 'offset', options: {offset: [0, 15]}}]
},
when: {
show() {
wizard_progress_bar(34);
}
},
});
}
}
$(document).ready(function() {
if(window.wizard_step!=-1 && window.wizard_step!=18 && window.wizard_step!=25) {
create_wizard(window.wizard_step);
wizard_tour_open = true;
wizard_tour.start();
}
});
window.save_vt_ui = function (save,preset_save,apply_preset) {
setTimeout(function () {
fix_colors_menu();
},200);
var show_vt_title = parseInt($('#show_vt_title option:selected').attr('id'));
switch(show_vt_title) {
case 0:
$('.name_vt, .room_vt').addClass('ui_disabled');
break;
case 1:
$('.name_vt, .room_vt').removeClass('ui_disabled');
break;
case 2:
$('.name_vt').removeClass('ui_disabled');
$('.room_vt').addClass('ui_disabled');
break;
case 3:
$('.name_vt').addClass('ui_disabled');
$('.room_vt').removeClass('ui_disabled');
break;
}
var vt_title_height = $('#vt_title_height').val();
$('.header_vt').css('height',vt_title_height+'px');
var show_audio = ($('#show_audio').is(':checked')) ? 1 : 0;
if(show_audio==1) {
$('.song_control').removeClass('ui_disabled');
} else {
$('.song_control').addClass('ui_disabled');
}
var show_fullscreen = ($('#show_fullscreen').is(':checked')) ? 1 : 0;
if(show_fullscreen==1) {
$('.fullscreen_control').removeClass('ui_disabled');
} else {
$('.fullscreen_control').addClass('ui_disabled');
}
var show_map = parseInt($('#show_map option:selected').attr('id'));
switch (show_map) {
case 0:
$('.map_control').addClass('ui_disabled');
$('.map .all_maps').addClass('ui_disabled');
$('.map .map_bar').addClass('ui_disabled');
$('.map_control i').removeClass('icon-map_on').addClass('icon-map_off');
break;
case 1:
case 2:
$('.map_control').removeClass('ui_disabled');
$('.map .all_maps').removeClass('ui_disabled');
$('.map .map_bar').removeClass('ui_disabled');
$('.map_control i').removeClass('icon-map_on').addClass('icon-map_off');
break;
case 3:
$('.map_control').removeClass('ui_disabled');
$('.map .all_maps').removeClass('ui_disabled');
$('.map .map_bar').removeClass('ui_disabled');
$('.map_control i').removeClass('icon-map_off').addClass('icon-map_on');
break;
case 4:
$('.map_control').removeClass('ui_disabled');
$('.map .all_maps').addClass('ui_disabled');
$('.map .map_bar').removeClass('ui_disabled');
$('.map_control i').removeClass('icon-map_on').addClass('icon-map_off');
break;
}
var show_map_tour = parseInt($('#show_map_tour option:selected').attr('id'));
switch (show_map_tour) {
case 0:
$('.map_tour_control').addClass('ui_disabled');
$('.map_tour_control i').removeClass('fas').addClass('far');
break;
case 1:
$('.map_tour_control').removeClass('ui_disabled');
$('.map_tour_control i').removeClass('fas').addClass('far');
break;
case 2:
$('.map_tour_control').removeClass('ui_disabled');
$('.map_tour_control i').removeClass('far').addClass('fas');
break;
}
var show_list_alt = parseInt($('#show_list_alt option:selected').attr('id'));
switch (show_list_alt) {
case 0:
$('.list_alt_menu').addClass('ui_disabled');
break;
case 1:
$('.list_alt_menu').removeClass('ui_disabled');
break;
case 2:
$('.list_alt_menu').removeClass('ui_disabled');
break;
}
var show_annotations = ($('#show_annotations').is(':checked')) ? 1 : 0;
if(show_annotations==1) {
$('.annotation').removeClass('ui_disabled');
$('.annotations_control').removeClass('ui_disabled');
} else {
$('.annotation').addClass('ui_disabled');
$('.annotations_control').addClass('ui_disabled');
}
var show_logo = ($('#show_logo').is(':checked')) ? 1 : 0;
if(show_logo==1) {
$('.logo img').removeClass('ui_disabled');
} else {
$('.logo img').addClass('ui_disabled');
}
var show_poweredby = ($('#show_poweredby').is(':checked')) ? 1 : 0;
if(show_poweredby==1) {
$('.poweredby img').removeClass('ui_disabled');
$('.poweredby span').removeClass('ui_disabled');
} else {
$('.poweredby img').addClass('ui_disabled');
$('.poweredby span').addClass('ui_disabled');
}
var show_nav_control = ($('#show_nav_control').is(':checked')) ? 1 : 0;
if(show_nav_control==1) {
$('.nav_control').removeClass('ui_disabled');
} else {
$('.nav_control').addClass('ui_disabled');
}
var show_comments = parseInt($('#show_comments option:selected').attr('id'));
switch (show_comments) {
case 0:
$('.comments_vt').addClass('ui_disabled');
break;
case 1:
case 2:
$('.comments_vt').removeClass('ui_disabled');
break;
}
var voice_commands = parseInt($('#voice_commands option:selected').attr('id'));
switch (voice_commands) {
case 0:
$('#skitt-ui').addClass('ui_disabled');
break;
case 1:
case 2:
$('#skitt-ui').removeClass('ui_disabled');
break;
}
var show_custom = parseInt($('#show_custom option:selected').attr('id'));
switch (show_custom) {
case 0:
$('.custom_control').addClass('ui_disabled');
break;
case 1:
case 2:
$('.custom_control').removeClass('ui_disabled');
break;
}
var show_custom2 = parseInt($('#show_custom2 option:selected').attr('id'));
switch (show_custom2) {
case 0:
$('.custom2_control').addClass('ui_disabled');
break;
case 1:
case 2:
$('.custom2_control').removeClass('ui_disabled');
break;
}
var show_custom3 = parseInt($('#show_custom3 option:selected').attr('id'));
switch (show_custom3) {
case 0:
$('.custom3_control').addClass('ui_disabled');
break;
case 1:
case 2:
$('.custom3_control').removeClass('ui_disabled');
break;
}
var show_custom4 = parseInt($('#show_custom4 option:selected').attr('id'));
switch (show_custom4) {
case 0:
$('.custom4_control').addClass('ui_disabled');
break;
case 1:
case 2:
$('.custom4_control').removeClass('ui_disabled');
break;
}
var show_custom5 = parseInt($('#show_custom5 option:selected').attr('id'));
switch (show_custom5) {
case 0:
$('.custom5_control').addClass('ui_disabled');
break;
case 1:
case 2:
$('.custom5_control').removeClass('ui_disabled');
break;
}
var show_location = parseInt($('#show_location option:selected').attr('id'));
switch (show_location) {
case 0:
$('.location_control').addClass('ui_disabled');
break;
case 1:
case 2:
$('.location_control').removeClass('ui_disabled');
break;
}
var show_info = parseInt($('#show_info option:selected').attr('id'));
switch (show_info) {
case 0:
$('.info_control').addClass('ui_disabled');
break;
case 1:
case 2:
$('.info_control').removeClass('ui_disabled');
break;
}
var info_box_type = $('#info_box_type option:selected').attr('id');
var show_dollhouse = parseInt($('#show_dollhouse option:selected').attr('id'));
switch (show_dollhouse) {
case 0:
$('.dollhouse_control').addClass('ui_disabled');
break;
case 1:
case 2:
$('.dollhouse_control').removeClass('ui_disabled');
break;
}
var show_gallery = parseInt($('#show_gallery option:selected').attr('id'));
switch (show_gallery) {
case 0:
$('.gallery_control').addClass('ui_disabled');
break;
case 1:
case 2:
$('.gallery_control').removeClass('ui_disabled');
break;
}
var compass = ($('#compass').is(':checked')) ? 1 : 0;
if(compass==1) {
$('.compass_control').removeClass('ui_disabled');
} else {
$('.compass_control').addClass('ui_disabled');
}
var fb_messenger = ($('#fb_messenger').is(':checked')) ? 1 : 0;
if(fb_messenger==1) {
$('.facebook_control').removeClass('ui_disabled');
} else {
$('.facebook_control').addClass('ui_disabled');
}
var whatsapp_chat = ($('#whatsapp_chat').is(':checked')) ? 1 : 0;
if(whatsapp_chat==1) {
$('.whatsapp_control').removeClass('ui_disabled');
} else {
$('.whatsapp_control').addClass('ui_disabled');
}
var arrows_nav = parseInt($('#arrows_nav option:selected').attr('id'));
switch (arrows_nav) {
case 0:
$('.prev_arrow').addClass('ui_disabled');
$('.next_arrow').addClass('ui_disabled');
break;
case 1:
case 2:
$('.prev_arrow').removeClass('ui_disabled');
$('.next_arrow').removeClass('ui_disabled');
break;
}
var auto_show_slider = parseInt($('#auto_show_slider option:selected').attr('id'));
switch (auto_show_slider) {
case 2:
$('.list_control').addClass('ui_disabled');
$('.list_control_alt').addClass('ui_disabled');
$('.list_control i').removeClass('fa-chevron-down').addClass('fa-chevron-up');
$('.list_control_alt').removeClass('fa-chevron-down').addClass('fa-chevron-up');
$('.list_slider ul').addClass('ui_disabled');
$('.list_slider li').addClass('ui_disabled');
$('.list_slider #list_left').addClass('ui_disabled');
$('.list_slider #list_right').addClass('ui_disabled');
break;
case 1:
$('.list_control').removeClass('ui_disabled');
$('.list_control_alt').removeClass('ui_disabled');
$('.list_control i').removeClass('fa-chevron-up').addClass('fa-chevron-down');
$('.list_control_alt').removeClass('fa-chevron-up').addClass('fa-chevron-down');
$('.list_slider ul').removeClass('ui_disabled');
$('.list_slider li').removeClass('ui_disabled');
$('.list_slider #list_left').removeClass('ui_disabled');
$('.list_slider #list_right').removeClass('ui_disabled');
break;
case 0:
$('.list_control').removeClass('ui_disabled');
$('.list_control_alt').removeClass('ui_disabled');
$('.list_control i').removeClass('fa-chevron-down').addClass('fa-chevron-up');
$('.list_control_alt').removeClass('fa-chevron-down').addClass('fa-chevron-up');
$('.list_slider ul').removeClass('ui_disabled');
$('.list_slider li').removeClass('ui_disabled');
$('.list_slider #list_left').removeClass('ui_disabled');
$('.list_slider #list_right').removeClass('ui_disabled');
break;
}
var nav_slider = parseInt($('#nav_slider option:selected').attr('id'));
switch (nav_slider) {
case 2:
$('.list_slider #list_left').addClass('ui_disabled');
$('.list_slider #list_right').addClass('ui_disabled');
break;
case 0:
case 1:
if(auto_show_slider!=2) {
$('.list_slider #list_left').removeClass('ui_disabled');
$('.list_slider #list_right').removeClass('ui_disabled');
}
break;
}
var show_icons_toggle = ($('#show_icons_toggle').is(':checked')) ? 1 : 0;
if(show_icons_toggle==1) {
$('.icons_control').removeClass('ui_disabled');
} else {
$('.icons_control').addClass('ui_disabled');
}
var show_measures_toggle = parseInt($('#show_measures_toggle option:selected').attr('id'));
switch (show_measures_toggle) {
case 0:
$('.measures_control').addClass('ui_disabled');
$('.measures_control .fa-circle').removeClass('active').addClass('not_active');
break;
case 2:
$('.measures_control').removeClass('ui_disabled');
$('.measures_control .fa-circle').removeClass('active').addClass('not_active');
break;
case 1:
$('.measures_control').removeClass('ui_disabled');
$('.measures_control .fa-circle').removeClass('not_active').addClass('active');
break;
}
var show_autorotation_toggle = parseInt($('#show_autorotation_toggle option:selected').attr('id'));
switch (show_autorotation_toggle) {
case 0:
$('.autorotate_control').addClass('ui_disabled');
$('.autorotate_control .fa-circle').removeClass('active').addClass('not_active');
break;
case 2:
$('.autorotate_control').removeClass('ui_disabled');
$('.autorotate_control .fa-circle').removeClass('active').addClass('not_active');
break;
case 1:
$('.autorotate_control').removeClass('ui_disabled');
$('.autorotate_control .fa-circle').removeClass('not_active').addClass('active');
break;
}
var show_device_orientation = parseInt($('#show_device_orientation option:selected').attr('id'));
switch (show_device_orientation) {
case 0:
$('.orient_control').addClass('ui_disabled');
$('.orient_control .fa-circle').removeClass('active').addClass('not_active');
break;
case 1:
$('.orient_control').removeClass('ui_disabled');
$('.orient_control .fa-circle').removeClass('active').addClass('not_active');
break;
case 2:
$('.orient_control').removeClass('ui_disabled');
$('.orient_control .fa-circle').removeClass('not_active').addClass('active');
break;
}
var drag_device_orientation = ($('#drag_device_orientation').is(':checked')) ? 1 : 0;
var show_webvr = ($('#show_webvr').is(':checked')) ? 1 : 0;
if(show_webvr==1) {
$('.vr_control').removeClass('ui_disabled');
} else {
$('.vr_control').addClass('ui_disabled');
}
var show_presentation = parseInt($('#show_presentation option:selected').attr('id'));
switch (show_presentation) {
case 0:
$('.presentation_control').addClass('ui_disabled');
break;
case 1:
case 2:
$('.presentation_control').removeClass('ui_disabled');
$('.presentation_control').removeClass('ui_disabled');
break;
}
var show_share = $('#show_share option:selected').attr('id');
if(show_share>0) {
$('.share_control').removeClass('ui_disabled');
} else {
$('.share_control').addClass('ui_disabled');
}
var share_providers_t = $('#share_providers option');
var share_providers = '';
$(share_providers_t).each(function(index, elem){
var id = $(this).attr('id');
if(id !== undefined) {
id = id.replace('provider_','');
if($(this).is(':selected')) {
share_providers = share_providers+id+',';
}
}
});
if(share_providers!='') {
share_providers = share_providers.substring(0,share_providers.length-1);
}
var show_main_form = ($('#show_main_form').is(':checked')) ? 1 : 0;
if(show_main_form==1) {
$('.form_control').removeClass('ui_disabled');
} else {
$('.form_control').addClass('ui_disabled');
}
var meeting = parseInt($('#meeting option:selected').attr('id'));
switch (meeting) {
case 0:
$('.meeting_control').addClass('ui_disabled');
break;
case 1:
case 2:
$('.meeting_control').removeClass('ui_disabled');
$('.meeting_control').removeClass('ui_disabled');
break;
}
var live_session = ($('#live_session').is(':checked')) ? 1 : 0;
if(live_session==1) {
$('.live_control').removeClass('ui_disabled');
} else {
$('.live_control').addClass('ui_disabled');
}
var logo_height = $('#logo_height').val();
if(logo_height=='') logo_height=40;
$('.logo img').css('height',logo_height+'px');
var poweredby_height = $('#poweredby_height').val();
if(poweredby_height=='') poweredby_height=40;
$('.poweredby img').css('height',poweredby_height+'px');
var poweredby_font_size = $('#poweredby_font_size').val();
if(poweredby_font_size=='') poweredby_font_size=12;
var poweredby_font_color = $('#poweredby_font_color').val();
$('.poweredby span').css('font-size',poweredby_font_size+'px');
var logo_padding_left = $('#logo_padding_left').val();
if(logo_padding_left=='') logo_padding_left=0;
$('.logo img').css('margin-left',logo_padding_left+'px');
var logo_padding_top = $('#logo_padding_top').val();
if(logo_padding_top=='') logo_padding_top=0;
$('.logo img').css('margin-top',logo_padding_top+'px');
var logo_padding_right = $('#logo_padding_right').val();
if(logo_padding_right=='') logo_padding_right=0;
$('.logo img').css('margin-right',logo_padding_right+'px');
var logo_position = $('#logo_position option:selected').attr('id');
$('.logo').removeClass('logo_top_left').removeClass('logo_top_right').removeClass('logo_top_center').addClass('logo_'+logo_position);
var poweredby_position = $('#poweredby_position option:selected').attr('id');
$('.poweredby').removeClass('poweredby_bottom_left').removeClass('poweredby_bottom_right').removeClass('poweredby_bottom_center').addClass('poweredby_'+poweredby_position);
var annotation_position = $('#annotation_position option:selected').attr('id');
$('.annotation').removeClass('annotation_top_left').removeClass('annotation_top_right').addClass('annotation_'+annotation_position);
var map_position = $('#map_position option:selected').attr('id');
$('.map').removeClass('map_top_left').removeClass('map_top_right').addClass('map_'+map_position);
var autoclose_menu = ($('#autoclose_menu').is(':checked')) ? 1 : 0;
var autoclose_list_alt = ($('#autoclose_list_alt').is(':checked')) ? 1 : 0;
var autoclose_slider = ($('#autoclose_slider').is(':checked')) ? 1 : 0;
var autoclose_map = ($('#autoclose_map').is(':checked')) ? 1 : 0;
var array_colors = {};
$('.color_picker').each(function () {
var id_cp = $(this).attr('id');
array_colors[id_cp]=$(this).val();
});
$('.color_picker_bg').each(function () {
var id_cp = $(this).attr('id');
array_colors[id_cp]=$(this).val();
});
var array_positions = {};
$('.position_select').each(function () {
var id_pos = $(this).attr('id');
array_positions[id_pos]=$("#"+id_pos+' option:selected').attr('id');
});
var annotation_position = $('#annotation_position option:selected').attr('id');
var map_position = $('#map_position option:selected').attr('id');
var logo_position = $('#logo_position option:selected').attr('id');
var array_orders = {};
$('#controls_bottom_left div').each(function () {
var id = $(this).attr('id');
if(id!=null && id!='skitt-ui' && !$(this).hasClass('ui_hidden')) {
array_orders[id]=$(this).css('order');
}
});
$('#controls_bottom_center div').each(function () {
var id = $(this).attr('id');
if(id!=null && id!='skitt-ui' && !$(this).hasClass('ui_hidden')) {
array_orders[id]=$(this).css('order');
}
});
$('#controls_bottom_right div').each(function () {
var id = $(this).attr('id');
if(id!=null && id!='skitt-ui' && !$(this).hasClass('ui_hidden')) {
array_orders[id]=$(this).css('order');
}
});
$('.menu_controls .dropdown p').each(function () {
var id = $(this).attr('id');
if(id!=null && id!='skitt-ui' && !$(this).hasClass('ui_hidden')) {
array_orders[id]=$(this).css('order');
}
});
var array_icons = {};
$('.icon_picker_value').each(function () {
var id = $(this).attr('id').replace("_icon","");
if(id!=null) {
array_icons[id]=$(this).val();
}
});
var array_library_icons = {};
$('.library_icon_value').each(function () {
var id = $(this).attr('id').replace("_library_icon","");
if(id!=null) {
var library_icon = $(this).val();
if(library_icon=='') {
library_icon=0;
} else {
library_icon = parseInt(library_icon);
}
array_library_icons[id]=library_icon;
}
});
var form_enable = show_main_form;
var custom_title = $('#custom_title').val();
var custom_content = window.custom_content_html.getValue();
var custom2_title = $('#custom2_title').val();
var custom2_content = window.custom2_content_html.getValue();
var custom3_title = $('#custom3_title').val();
var custom3_content = window.custom3_content_html.getValue();
var custom4_title = $('#custom4_title').val();
var custom4_content = window.custom4_content_html.getValue();
var custom5_title = $('#custom5_title').val();
var custom5_content = window.custom5_content_html.getValue();
var location_title = $('#location_title').val();
var location_content = $('#gm_map').val()+"|"+$('#gm_street').val();;
var markers_icon = $('#markers_icon').val();
var markers_icon_type = $('#markers_icon_type option:selected').attr('id');
var markers_id_icon_library = $('#marker_library_icon').val();
var markers_color = $('#markers_color').val();
var markers_background = $('#markers_background').val();
var markers_style = $('#markers_style option:selected').attr('id');
var markers_tooltip_type = $('#markers_tooltip_type option:selected').attr('id');
var markers_tooltip_visibility = $('#markers_tooltip_visibility option:selected').attr('id');
var markers_tooltip_color = $('#markers_tooltip_color').val();
var markers_tooltip_background = $('#markers_tooltip_background').val();
var markers_default_scale = ($('#markers_default_scale').is(':checked')) ? 1 : 0;
var markers_default_sound = $('#markers_default_sound option:selected').attr('id');
var markers_animation = $('#markers_animation option:selected').attr('id');
var pois_icon = $('#pois_icon').val();
var pois_icon_type = $('#pois_icon_type option:selected').attr('id');
var pois_id_icon_library = $('#poi_library_icon').val();
var pois_color = $('#pois_color').val();
var pois_background = $('#pois_background').val();
var pois_style = $('#pois_style option:selected').attr('id');
var pois_tooltip_type = $('#pois_tooltip_type option:selected').attr('id');
var pois_tooltip_visibility = $('#pois_tooltip_visibility option:selected').attr('id');
var pois_tooltip_color = $('#pois_tooltip_color').val();
var pois_tooltip_background = $('#pois_tooltip_background').val();
var pois_default_scale = ($('#pois_default_scale').is(':checked')) ? 1 : 0;
var pois_default_sound = $('#pois_default_sound option:selected').attr('id');
var pois_animation = $('#pois_animation option:selected').attr('id');
switch(markers_style) {
case 'room_and_icon':
var markers_show_room = 2;
break;
case 'icon_and_room':
var markers_show_room = 1;
break;
case 'only_icon':
var markers_show_room = 0;
break;
case 'only_room':
var markers_show_room = 3;
break;
case 'custom_icon':
var markers_show_room = 4;
break;
case 'preview_room':
var markers_show_room = 5;
break;
}
switch(pois_style) {
case 'label_and_icon':
var pois_style_t = 3;
break;
case 'icon_and_label':
var pois_style_t = 2;
break;
case 'only_icon':
var pois_style_t = 0;
break;
case 'only_label':
var pois_style_t = 4;
break;
case 'custom_icon':
var pois_style_t = 1;
break;
}
if(window.font_provider=='systems') {
var font_viewer = $('#font_viewer_system option:selected').attr('id');
} else {
var font_viewer = $('#font_viewer').val();
}
var icons_tooltips = ($('#icons_tooltips').is(':checked')) ? 1 : 0;
var preview_room_slider = ($('#preview_room_slider').is(':checked')) ? 1 : 0;
var autorotate_inactivity = $('#autorotate_inactivity').val();
var autorotate_speed = $('#autorotate_speed').val();
if(autorotate_speed==0) {
$('.autorotate_control').addClass('ui_disabled');
$('.autorotate_control .fa-circle').removeClass('active').addClass('not_active');
}
var song_autoplay = $('#song_autoplay option:selected').attr('id');
var fb_page_id = $('#fb_page_id').val();
var whatsapp_number = $('#whatsapp_number').val();
var password_meeting = $('#password_meeting').val();
var password_livesession = $('#password_livesession').val();
var disqus_shortname = $('#disqus_shortname').val();
var disqus_public_key = $('#disqus_public_key').val();
var song_bg_volume = $('#song_bg_volume').val();
var language = $('#language option:selected').attr('id');
var languages_enabled_t = $('#languages_enabled option');
var languages_enabled = {};
var count_lang_enabled = 1;
$(languages_enabled_t).each(function(index, elem){
var id = $(this).attr('id').replace('ls_','');
if($(this).is(':selected')) {
languages_enabled[id]=1;
if(id!=window.default_language) {
count_lang_enabled++;
}
} else {
languages_enabled[id]=0;
}
});
var languages_enabled_json = JSON.stringify(languages_enabled);
if(language=='') {
$('.language_control img').attr('src','img/flags_lang/'+window.default_language+'.png?v=2');
} else {
$('.language_control img').attr('src','img/flags_lang/'+language+'.png?v=2');
}
var show_language = ($('#show_language').is(':checked')) ? 1 : 0;
if(show_language==1 && count_lang_enabled>1) {
$('.language_control').removeClass('ui_disabled');
} else {
$('.language_control').addClass('ui_disabled');
}
toggle_menu_control_disabled_ui();
adjust_elements_positions();
if(preset_save) {
apply_preset=0;
var id_preset = parseInt($('#presets_editor_ui option:selected').attr('id'));
if(id_preset!=0) {
var r = confirm(window.backend_labels.confirm_save_preset);
if (r == false) {
save = false;
return;
}
}
var name_preset = $('#preset_new_name').val();
var preset_public = ($('#preset_public').is(':checked')) ? 1 : 0;
if(id_preset==0 && name_preset=='') {
$('#preset_new_name').addClass('error-highlight');
save = false;
return;
} else {
$('#preset_new_name').removeClass('error-highlight');
}
} else if(apply_preset) {
apply_preset=1;
var id_preset = parseInt($('#presets_editor_ui option:selected').attr('id'));
var name_preset = '';
var preset_public = 0;
} else {
apply_preset=0;
var id_preset = null;
var name_preset = '';
var preset_public = 0;
}
if(save) {
$('#modal_presets button').addClass('disabled');
$('#save_btn .icon i').removeClass('far fa-circle').addClass('fas fa-circle-notch fa-spin');
$('#save_btn').addClass("disabled");
$.ajax({
url: "ajax/save_virtual_tour_ui.php",
type: "POST",
data: {
id_virtualtour: window.id_virtualtour,
id_user: window.id_user,
arrows_nav: arrows_nav,
voice_commands: voice_commands,
compass: compass,
auto_show_slider: auto_show_slider,
nav_slider: nav_slider,
show_list_alt: show_list_alt,
show_custom: show_custom,
show_custom2: show_custom2,
show_custom3: show_custom3,
show_custom4: show_custom4,
show_custom5: show_custom5,
show_location: show_location,
show_info: show_info,
info_box_type: info_box_type,
show_dollhouse: show_dollhouse,
show_gallery: show_gallery,
show_icons_toggle: show_icons_toggle,
show_measures_toggle: show_measures_toggle,
show_autorotation_toggle: show_autorotation_toggle,
show_nav_control: show_nav_control,
show_presentation: show_presentation,
show_main_form: show_main_form,
show_share: show_share,
share_providers: share_providers,
show_device_orientation: show_device_orientation,
drag_device_orientation: drag_device_orientation,
show_webvr: show_webvr,
show_audio: show_audio,
show_vt_title: show_vt_title,
vt_title_height: vt_title_height,
show_fullscreen: show_fullscreen,
show_map: show_map,
show_map_tour: show_map_tour,
live_session: live_session,
meeting: meeting,
show_annotations: show_annotations,
autoclose_menu: autoclose_menu,
autoclose_list_alt: autoclose_list_alt,
autoclose_slider: autoclose_slider,
autoclose_map: autoclose_map,
show_logo: show_logo,
fb_messenger: fb_messenger,
whatsapp_chat: whatsapp_chat,
array_colors: array_colors,
array_positions: array_positions,
array_orders: array_orders,
array_icons: array_icons,
array_library_icons: array_library_icons,
annotation_position: annotation_position,
map_position: map_position,
logo_position: logo_position,
logo_height: logo_height,
logo_padding_left: logo_padding_left,
logo_padding_top: logo_padding_top,
logo_padding_right: logo_padding_right,
form_enable: form_enable,
custom_title: custom_title,
custom2_title: custom2_title,
custom3_title: custom3_title,
custom4_title: custom4_title,
custom5_title: custom5_title,
custom_content: custom_content,
custom2_content: custom2_content,
custom3_content: custom3_content,
custom4_content: custom4_content,
custom5_content: custom5_content,
location_title: location_title,
location_content: location_content,
markers_icon: markers_icon,
markers_icon_type: markers_icon_type,
markers_id_icon_library: markers_id_icon_library,
markers_color: markers_color,
markers_background: markers_background,
markers_show_room: markers_show_room,
markers_tooltip_type: markers_tooltip_type,
markers_tooltip_visibility: markers_tooltip_visibility,
markers_tooltip_background: markers_tooltip_background,
markers_tooltip_color: markers_tooltip_color,
markers_default_scale: markers_default_scale,
markers_default_sound: markers_default_sound,
markers_animation: markers_animation,
pois_icon: pois_icon,
pois_icon_type: pois_icon_type,
pois_id_icon_library: pois_id_icon_library,
pois_color: pois_color,
pois_background: pois_background,
pois_style: pois_style_t,
pois_tooltip_type: pois_tooltip_type,
pois_tooltip_visibility: pois_tooltip_visibility,
pois_tooltip_background: pois_tooltip_background,
pois_tooltip_color: pois_tooltip_color,
pois_default_scale: pois_default_scale,
pois_default_sound: pois_default_sound,
pois_animation: pois_animation,
font_viewer: font_viewer,
id_preset: id_preset,
name_preset: name_preset,
preset_public: preset_public,
apply_preset: apply_preset,
nadir_size: nadir_size,
icons_tooltips: icons_tooltips,
autorotate_inactivity: autorotate_inactivity,
autorotate_speed: autorotate_speed,
song_autoplay: song_autoplay,
fb_page_id: fb_page_id,
whatsapp_number: whatsapp_number,
password_meeting: password_meeting,
password_livesession: password_livesession,
preview_room_slider: preview_room_slider,
show_comments: show_comments,
disqus_shortname: disqus_shortname,
disqus_public_key: disqus_public_key,
song_bg_volume: song_bg_volume,
language: language,
languages_enabled: languages_enabled_json,
show_language: show_language,
show_poweredby: show_poweredby,
poweredby_height: poweredby_height,
poweredby_font_size: poweredby_font_size,
poweredby_font_color: poweredby_font_color,
poweredby_position: poweredby_position
},
async: true,
success: function (json) {
var rsp = JSON.parse(json);
if(rsp.status=="ok") {
if(apply_preset==1) {
window.ui_need_save = false;
location.reload();
} else if(preset_save) {
if(id_preset==0) {
var id_new_preset = rsp.id_preset;
get_editor_ui_presets(id_new_preset);
} else {
get_editor_ui_presets(id_preset);
}
$('#modal_presets button').removeClass('disabled');
$('#save_btn .icon i').removeClass('fas fa-circle-notch fa-spin').addClass('fas fa-check');
setTimeout(function () {
$('#save_btn .icon i').removeClass('fas fa-check').addClass('far fa-circle');
$('#save_btn').removeClass("disabled");
},1000);
} else {
window.ui_need_save = false;
$('#save_btn .icon i').removeClass('fas fa-circle-notch fa-spin').addClass('fas fa-check');
setTimeout(function () {
$('#save_btn .icon i').removeClass('fas fa-check').addClass('far fa-circle');
$('#save_btn').removeClass("disabled");
},1000);
}
} else {
$('#modal_presets button').removeClass('disabled');
$('#save_btn .icon i').removeClass('fas fa-circle-notch fa-spin').addClass('fas fa-times');
$('#save_btn').removeClass('btn-success').addClass('btn-danger');
setTimeout(function () {
$('#save_btn .icon i').removeClass('fas fa-times').addClass('far fa-circle');
$('#save_btn').removeClass('btn-danger').addClass('btn-success');
$('#save_btn').removeClass("disabled");
},1000);
}
},
error: function() {
$('#save_btn .icon i').removeClass('fas fa-circle-notch fa-spin').addClass('fas fa-times');
$('#save_btn').removeClass('btn-success').addClass('btn-danger');
setTimeout(function () {
$('#save_btn .icon i').removeClass('fas fa-times').addClass('far fa-circle');
$('#save_btn').removeClass('btn-danger').addClass('btn-success');
$('#save_btn').removeClass("disabled");
},1000);
}
});
}
}
window.close_edit_box = function() {
$('.ui_edit_box').hide();
}
window.change_ui_position = function (id) {
var position = $('#'+id+' option:selected').attr('id');
var target = $('#'+id).attr('data-target');
switch(target) {
case 'list_control':
case 'arrows_control':
$('.controls_arrows').addClass('ui_hidden');
$('.list_control').addClass('ui_hidden');
$('.list_control_alt').addClass('ui_hidden');
$('.arrows_nav').addClass('ui_hidden');
$('.prev_arrow').addClass('ui_hidden');
$('.next_arrow').addClass('ui_hidden');
var position_list = $('#position_list option:selected').attr('id');
var position_arrows = $('#position_arrows option:selected').attr('id');
if(target=='list_control' && position_list!='default' && position_arrows!='default') {
$('#position_arrows option').prop('selected',false);
$('#position_arrows option[id="'+position_list+'"]').prop('selected',true);
position_arrows = position_list;
}
if(target=='arrows_control' && position_list!='default' && position_arrows!='default') {
$('#position_list option').prop('selected',false);
$('#position_list option[id="'+position_arrows+'"]').prop('selected',true);
position_list = position_arrows;
}
position_list = position_list.replace('button_','');
position_arrows = position_arrows.replace('button_','');
if(position_list!='default') {
$('#controls_bottom_'+position_list+' .list_control_alt').removeClass('ui_hidden');
$('#list_background').removeClass('d-none');
$('#list_background_hover').removeClass('d-none');
} else {
$('.list_control').removeClass('ui_hidden');
$('#list_background').addClass('d-none');
$('#list_background_hover').addClass('d-none');
}
if(position_arrows!='default') {
$('#controls_bottom_'+position_arrows+' .prev_arrow').removeClass('ui_hidden');
$('#controls_bottom_'+position_arrows+' .next_arrow').removeClass('ui_hidden');
$('#arrows_background').removeClass('d-none');
$('#arrows_background_hover').removeClass('d-none');
$('.controls_arrows').css('background-color',$('#arrows_background').val());
} else {
$('.arrows_nav').removeClass('ui_hidden');
$('.arrows_nav .prev_arrow').removeClass('ui_hidden');
$('.arrows_nav .next_arrow').removeClass('ui_hidden');
$('#arrows_background').addClass('d-none');
$('#arrows_background_hover').addClass('d-none');
$('.controls_arrows').css('background-color','transparent');
}
$('.controls_arrows i:not(.ui_hidden):first').css('margin-right','0');
$('.controls_arrows i:not(.ui_hidden):nth-child(2)').css('margin-right','0');
if((position_list!='default') || (position_arrows!='default')) {
if(position_list!='default') {
$('#controls_arrow_'+position_list+'').removeClass('ui_hidden');
if(!$('#controls_arrow_'+position_list+' .prev_arrow').hasClass('ui_hidden')) {
$('.controls_arrows i:not(.ui_hidden):first').css('margin-right','-9px');
$('.controls_arrows i:not(.ui_hidden):nth-child(2)').css('margin-right','-9px');
}
}
if(position_arrows!='default') {
$('#controls_arrow_'+position_arrows+'').removeClass('ui_hidden');
if(!$('#controls_arrow_'+position_arrows+' .prev_arrow').hasClass('ui_hidden')) {
$('.controls_arrows i:not(.ui_hidden):first').css('margin-right','-9px');
$('.controls_arrows i:not(.ui_hidden):nth-child(2)').css('margin-right','-9px');
}
}
}
if($('.list_control').hasClass('ui_hidden')) {
$('#controls_bottom_center').css('bottom','112px');
} else {
$('#controls_bottom_center').css('bottom','136px');
}
break;
default:
switch (position) {
case 'button_left':
$('.'+target).addClass('ui_hidden');
$('#controls_bottom_left .'+target).removeClass('ui_hidden');
break;
case 'button_center':
$('.'+target).addClass('ui_hidden');
$('#controls_bottom_center .'+target).removeClass('ui_hidden');
break;
case 'button_right':
$('.'+target).addClass('ui_hidden');
$('#controls_bottom_right .'+target).removeClass('ui_hidden');
break;
case 'menu':
$('.'+target).addClass('ui_hidden');
$('.menu_controls .dropdown .'+target).removeClass('ui_hidden');
break;
}
break;
}
fix_ui_order();
save_vt_ui(false,false,false);
}
window.change_ui_order = function (direction,id_curr,id_pos) {
var position = $('#'+id_pos+' option:selected').attr('id');
switch (position) {
case 'button_left':
var container = '#controls_bottom_left';
var elements = container+' div';
break;
case 'button_center':
var container = '#controls_bottom_center';
var elements = container+' div';
break;
case 'button_right':
var container = '#controls_bottom_right';
var elements = container+' div';
break;
case 'menu':
var container = '.menu_controls .dropdown';
var elements = container+' p';
break;
}
var current_order = $(container+' .'+id_curr).css('order');
var array_orders = [];
$(elements).each(function () {
var id = $(this).attr('id');
if(id!=null && id!='skitt-ui' && !$(this).hasClass('ui_hidden')) {
var order = $(this).css('order');
array_orders.push({'id':id,'order':order});
}
});
array_orders.sort((a,b) => a.order-b.order);
var len = array_orders.length;
for(var i=0;i<len;i++) {
if(current_order==array_orders[i].order) {
switch(direction) {
case 'next':
var current = array_orders[i];
var next = array_orders[(i+1)%len];
var next_order = $("#"+next.id).css('order');
$(container+' .'+id_curr).css('order',next_order);
$("#"+next.id).css('order',current_order);
break;
case 'prev':
var current = array_orders[i];
var previous = array_orders[(i+len-1)%len];
var prev_order = $("#"+previous.id).css('order');
$(container+' .'+id_curr).css('order',prev_order);
$("#"+previous.id).css('order',current_order);
break;
}
break;
}
}
setTimeout(function() {
save_vt_ui(false,false,false);
},200);
}
window.fix_ui_order = function () {
var array_orders = [];
$('#controls_bottom_right div').each(function () {
var id = $(this).attr('id');
if(id!=null && id!='skitt-ui' && !$(this).hasClass('ui_hidden')) {
var order = $(this).css('order');
array_orders.push({'id':id,'order':order});
}
});
array_orders.sort((a,b) => a.order-b.order);
var len = array_orders.length;
for(var i=0;i<len;i++) {
$("#"+array_orders[i].id).css('order',i);
}
array_orders = [];
$('#controls_bottom_center div').each(function () {
var id = $(this).attr('id');
if(id!=null && id!='skitt-ui' && !$(this).hasClass('ui_hidden')) {
var order = $(this).css('order');
array_orders.push({'id':id,'order':order});
}
});
array_orders.sort((a,b) => a.order-b.order);
var len = array_orders.length;
for(var i=0;i<len;i++) {
$("#"+array_orders[i].id).css('order',i);
}
array_orders = [];
$('#controls_bottom_left div').each(function () {
var id = $(this).attr('id');
if(id!=null && id!='skitt-ui' && !$(this).hasClass('ui_hidden')) {
var order = $(this).css('order');
array_orders.push({'id':id,'order':order});
}
});
array_orders.sort((a,b) => a.order-b.order);
var len = array_orders.length;
for(var i=0;i<len;i++) {
$("#"+array_orders[i].id).css('order',i);
}
array_orders = [];
$('.menu_controls .dropdown p').each(function () {
var id = $(this).attr('id');
if(id!=null && id!='skitt-ui' && !$(this).hasClass('ui_hidden')) {
var order = $(this).css('order');
array_orders.push({'id':id,'order':order});
}
});
array_orders.sort((a,b) => a.order-b.order);
var len = array_orders.length;
for(var i=0;i<len;i++) {
$("#"+array_orders[i].id).css('order',i);
}
}
window.toggle_menu_control_disabled_ui = function () {
var all_disabled = true;
$('.menu_controls .dropdown p').each(function () {
if(!$(this).hasClass("ui_hidden")) {
if(!$(this).hasClass('ui_disabled')) {
all_disabled = false;
}
}
});
if(all_disabled) {
$('.menu_controls #menu_icon').addClass('ui_disabled');
} else {
$('.menu_controls #menu_icon').removeClass('ui_disabled');
}
}
window.save_paypal_subscription_id = function (id_user,intent,subscriptionID) {
$.ajax({
url: "ajax/save_paypal_subscription_id.php",
type: "POST",
data: {
id_user: id_user,
intent: intent,
subscriptionID: subscriptionID
},
async: false,
success: function (json) {
var rsp = JSON.parse(json);
if(rsp.status=="ok") {
location.reload();
} else {
alert(rsp.msg);
}
}
});
}
window.change_preset_editor_ui = function () {
var id_preset = parseInt($('#presets_editor_ui option:selected').attr('id'));
var preset_name = $('#presets_editor_ui option:selected').attr('data-name');
var preset_public = parseInt($('#presets_editor_ui option:selected').attr('data-public'));
var preset_delete = parseInt($('#presets_editor_ui option:selected').attr('data-delete'));
var preset_update = parseInt($('#presets_editor_ui option:selected').attr('data-update'));
$('#preset_new_name').val(preset_name);
if(preset_public==1) {
$('#preset_public').prop('checked',true);
} else {
$('#preset_public').prop('checked',false);
}
if(preset_delete==1) {
$('#btn_delete_preset').removeClass('disabled');
$('#btn_delete_preset').attr('onclick','delete_editor_ui_preset('+id_preset+')');
} else {
$('#btn_delete_preset').addClass('disabled');
$('#btn_delete_preset').attr('onclick','');
}
if(preset_update==1) {
$('#btn_update_preset').removeClass('disabled');
$('#preset_new_name').removeClass('disabled');
} else {
$('#btn_update_preset').addClass('disabled');
$('#preset_new_name').addClass('disabled');
}
if(id_preset==0) {
$('#btn_apply_preset').addClass('disabled');
} else {
$('#btn_apply_preset').removeClass('disabled');
}
}
window.get_editor_ui_presets = function (id_preset) {
$.ajax({
url: "ajax/get_editor_ui_presets.php",
type: "POST",
data: {
id_preset: id_preset
},
async: false,
success: function (json) {
var rsp = JSON.parse(json);
var html = rsp.html;
$('#presets_editor_ui').html(html).promise().done(function () {
change_preset_editor_ui();
});
}
});
}
window.delete_editor_ui_preset = function (id_preset) {
var r = confirm(window.backend_labels.confirm_delete_preset);
if (r == true) {
$('#modal_presets button').addClass('disabled');
$.ajax({
url: "ajax/delete_editor_ui_preset.php",
type: "POST",
data: {
id_preset: id_preset
},
async: true,
success: function (json) {
$('#modal_presets button').removeClass('disabled');
get_editor_ui_presets(0);
}
});
}
}
window.apply_editor_ui_preset = function () {
var r = confirm(window.backend_labels.confirm_apply_preset);
if (r == true) {
$('#modal_presets button').addClass('disabled');
save_vt_ui(true,false,true);
}
}
window.change_multires = function () {
var multires = $('#multires option:selected').attr('id');
switch (multires) {
case 'local':
$('#multires_cloud_url').prop('disabled',true);
break;
case 'cloud':
$('#multires_cloud_url').prop('disabled',false);
break;
}
}
window.change_video360 = function () {
var video360 = $('#video360 option:selected').attr('id');
switch (video360) {
case 'local':
$('#video360_cloud_url').prop('disabled',true);
break;
case 'cloud':
$('#video360_cloud_url').prop('disabled',false);
break;
}
}
window.change_slideshow = function () {
var slideshow = $('#slideshow option:selected').attr('id');
switch (slideshow) {
case 'local':
$('#slideshow_cloud_url').prop('disabled',true);
break;
case 'cloud':
$('#slideshow_cloud_url').prop('disabled',false);
break;
}
}
window.change_video_project = function () {
var slideshow = $('#video_project option:selected').attr('id');
switch (slideshow) {
case 'local':
$('#video_project_url').prop('disabled',true);
break;
case 'cloud':
$('#video_project_url').prop('disabled',false);
break;
}
}
window.change_presentation_type = function() {
var type = $('#presentation_type option:selected').attr('id');
switch (type) {
case 'manual':
$('.automatic_presentation').addClass('d-none');
$('.manual_presentation').removeClass('d-none');
$('.video_presentation').addClass('d-none');
$('#presentation_loop').parent().removeClass('disabled');
$('#presentation_stop_click').parent().removeClass('disabled');
$('#presentation_stop_id_room').parent().removeClass('disabled');
$('#presentation_view_pois').parent().removeClass('disabled');
$('#presentation_view_measures').parent().removeClass('disabled');
break;
case 'automatic':
$('.automatic_presentation').removeClass('d-none');
$('.manual_presentation').addClass('d-none');
$('.video_presentation').addClass('d-none');
$('#presentation_loop').parent().removeClass('disabled');
$('#presentation_stop_click').parent().removeClass('disabled');
$('#presentation_stop_id_room').parent().removeClass('disabled');
$('#presentation_view_pois').parent().removeClass('disabled');
$('#presentation_view_measures').parent().removeClass('disabled');
break;
case 'video':
$('.automatic_presentation').addClass('d-none');
$('.manual_presentation').addClass('d-none');
$('.video_presentation').removeClass('d-none');
$('#presentation_loop').parent().addClass('disabled');
$('#presentation_stop_click').parent().addClass('disabled');
$('#presentation_stop_id_room').parent().addClass('disabled');
$('#presentation_view_pois').parent().addClass('disabled');
$('#presentation_view_measures').parent().addClass('disabled');
break;
}
}
window.delete_video360 = function(id_vt,file_name) {
var retVal = confirm(window.backend_labels.delete_sure_msg);
if( retVal == true ) {
$.ajax({
url: "ajax/delete_video360.php",
type: "POST",
data: {
id_virtualtour: id_vt,
file_name: file_name
},
async: false,
success: function (json) {
location.reload();
}
});
}
}
window.delete_slideshow = function(id_vt) {
var retVal = confirm(window.backend_labels.delete_sure_msg);
if( retVal == true ) {
$.ajax({
url: "ajax/delete_vt_slideshow.php",
type: "POST",
data: {
id_virtualtour: id_vt
},
async: false,
success: function (json) {
location.reload();
}
});
}
}
window.delete_video = function(id_video) {
var retVal = confirm(window.backend_labels.delete_sure_msg);
if( retVal == true ) {
$.ajax({
url: "ajax/delete_vt_video.php",
type: "POST",
data: {
id_video: id_video
},
async: false,
success: function (json) {
window.video_need_save = false;
location.reload();
}
});
}
}
window.get_job_queue = function (id_virtualtour,id_video,type,array_jobs) {
$.ajax({
url: "ajax/get_job_queue.php",
type: "POST",
data: {
id_virtualtour: id_virtualtour,
id_video: id_video,
type: type
},
async: true,
success: function (json) {
var running_jobs = JSON.parse(json);
for(var i=0;i<array_jobs.length;i++) {
var id_job = array_jobs[i];
if(!running_jobs.includes(id_job)) {
$('.background_job[data-id='+id_job+'] i.fa-circle-notch').hide();
$('.background_job[data-id='+id_job+'] i.fa-check').show();
$('.btn_progress_'+id_job).hide();
$('.btn_reload_'+id_job).show();
}
}
}
});
}
window.abort_job_queue = function(id) {
$.ajax({
url: "ajax/abort_job_queue.php",
type: "POST",
data: {
id: id
},
async: false,
success: function () {
window.location.reload();
}
});
}
window.get_rooms_video360 = function(id_vt) {
$.ajax({
url: "ajax/get_rooms_video360.php",
type: "POST",
data: {
id_virtualtour: id_vt
},
async: true,
success: function (json) {
var rsp = JSON.parse(json);
var html = '';
$.each(rsp,function (index, room) {
var room_id = room.id;
var room_name = room.name;
var room_image = room.panorama;
var room_thumb = room.thumb_image;
html += '<div data-name="'+room_name+'" data-panorama="'+room_image+'" data-id="'+room_id+'" class="room_video360 active noselect">';
html += '<img onclick="toggle_video360_active('+room_id+')" class="room_video360_handle" src="'+room_thumb+'" />';
html += '<p class="room_video360_name">'+room_name+'</p>';
html += '<input oninput="calculate_video_duration()" onchange="calculate_video_duration()" type="number" min="1" class="form-control form-control-sm room_video360_duration" value="10" />';
html += '</div>';
})
$('#list_room_video360').html(html).promise().done(function () {
var el = document.getElementById('list_room_video360');
Sortable.create(el,{
handle: '.room_video360_handle',
filter: ".no_drag",
onMove: function (e) { return e.related.className.indexOf('no_drag') === -1; }
});
calculate_video_duration();
});
if(rsp.length>0) {
$('#btn_create_video360').removeClass("disabled");
}
}
});
}
window.toggle_video360_active = function (room_id) {
if($('.room_video360[data-id="'+room_id+'"]').hasClass('active')) {
$('.room_video360[data-id="'+room_id+'"]').removeClass('active');
$('.room_video360[data-id="'+room_id+'"] input').prop('disabled',true);
} else {
$('.room_video360[data-id="'+room_id+'"]').addClass('active');
$('.room_video360[data-id="'+room_id+'"] input').prop('disabled',false);
}
calculate_video_duration();
}
window.select_room_video360 = function (w) {
switch (w) {
case 'all':
$('.room_video360').addClass('active');
break;
case 'none':
$('.room_video360').removeClass('active');
break;
}
calculate_video_duration();
}
window.select_duration_video360 = function () {
var duration = parseInt($('#video360_slide_duration').val());
if(duration!='' && duration>0) {
$('.room_video360_duration').val(duration);
}
calculate_video_duration();
}
window.sync_with_audio_video360 = function() {
var num_slides = 0;
$('.room_video360').each(function () {
if($(this).hasClass('active')) {
num_slides++;
}
})
if(window.audio_duration!=0) {
var duration = window.audio_duration / num_slides;
$('#video360_slide_duration').val(duration.toFixed(0));
select_duration_video360();
}
}
window.sync_with_audio_slideshow = function() {
var num_slides=0;
jQuery.each(window.gallery_images, function(index, image) {
if(image.visible==1) {
num_slides++;
}
});
var fade_duration = parseFloat($('#s_fade_duration').val());
if(window.audio_duration!=0) {
var duration = (parseFloat(window.audio_duration)+(fade_duration*(num_slides-1))) / num_slides;
$('#s_slide_duration').val(duration.toFixed(1));
}
}
window.calculate_video_duration = function() {
var total_duration = 0;
$('.room_video360').each(function () {
if($(this).hasClass('active')) {
var duration = $(this).find('input').val();
if(duration=='') duration=0;
duration = parseInt(duration);
total_duration = total_duration + duration;
}
})
if(total_duration==0) {
$('#btn_generate_video360').addClass('disabled');
} else {
$('#btn_generate_video360').removeClass('disabled');
}
$('#video360_duration').html(secondsToTime(total_duration));
}
function secondsToTime(e){
var h = Math.floor(e / 3600).toString().padStart(2,'0'),
m = Math.floor(e % 3600 / 60).toString().padStart(2,'0'),
s = Math.floor(e % 60).toString().padStart(2,'0');
return h + ':' + m + ':' + s;
}
function fancyTimeFormat(duration) {
var hrs = ~~(duration / 3600);
var mins = ~~((duration % 3600) / 60);
var secs = ~~duration % 60;
var ret = "";
if (hrs > 0) {
ret += "" + hrs + ":" + (mins < 10 ? "0" : "");
}
ret += "" + mins + ":" + (secs < 10 ? "0" : "");
ret += "" + secs;
return ret;
}
window.create_video360 = function() {
$('#div_exist_video360').hide();
$('#div_create_video360').show();
$('#btn_create_video360').parent().parent().hide();
}
window.close_video360 = function() {
$('#div_exist_video360').show();
$('#div_create_video360').hide();
$('#btn_create_video360').parent().parent().show();
}
window.generate_video360 = function () {
$('#btn_generate_video360').addClass('disabled');
$('#modal_generate_video360').modal('show');
setTimeout(function () {
$('#btn_continue_w').removeClass('d-none');
},10000);
var resolution = $('#video360_resolution option:selected').attr('id');
var audio = $('#s_audio option:selected').attr('id');
if(audio=='0') audio='';
var total_duration = 0;
var array_slides = [];
$('.room_video360').each(function () {
if($(this).hasClass('active')) {
var duration = $(this).find('input').val();
if(duration=='') duration=0;
duration = parseInt(duration);
total_duration = total_duration + duration;
var tmp = {};
tmp['name'] = $(this).attr('data-name');
tmp['panorama_image'] = $(this).attr('data-panorama');
tmp['duration'] = duration;
array_slides.push(tmp);
}
})
switch(window.video360_type) {
case 'local':
var url_ajax = "../services/generate_360video.php";
break;
case 'cloud':
var url_ajax = "../services/generate_360video_cloud.php";
break;
}
$.ajax({
url: url_ajax,
type: "POST",
data: {
id_virtualtour: window.id_virtualtour,
resolution: resolution,
audio: audio,
array_slides: array_slides,
duration: total_duration
},
async: true,
success: function (json) {
try {
var rsp = JSON.parse(json);
if(rsp.status=='ok') {
$('#modal_generate_video360').modal('hide');
location.reload();
} else {
$('#btn_generate_video360').removeClass('disabled');
$('#modal_generate_video360').modal('hide');
alert(rsp.msg);
}
} catch (e) {
$('#btn_generate_video360').removeClass('disabled');
$('#modal_generate_video360').modal('hide');
alert(window.backend_labels.generic_error_msg);
}
},
error: function () {
$('#btn_generate_video360').removeClass('disabled');
$('#modal_generate_video360').modal('hide');
alert(window.backend_labels.generic_error_msg);
}
})
}
window.save_video = function(id_video,generate) {
var complete = true;
var name = $('#name').val();
var fade = $('#fade').val();
var fps = $('#fps option:selected').attr('id');
var resolution = $('#resolution option:selected').attr('id');
var parts = resolution.split("x");
var resolution_w = parts[0];
var resolution_h = parts[1];
var audio = $('#audio option:selected').attr('id');
var watermark_pos = $('#watermark_pos option:selected').attr('id');
var watermark_opacity = $('#watermark_opacity').val();
if(name=='') {
complete = false;
$('#name').addClass("error-highlight");
} else {
$('#name').removeClass("error-highlight");
}
if(complete) {
$('#save_btn .icon i').removeClass('far fa-circle').addClass('fas fa-circle-notch fa-spin');
$('#save_btn').addClass("disabled");
if(generate) {
$('#btn_generate_video').addClass('disabled');
$('#modal_generate_video').modal('show');
setTimeout(function () {
$('#btn_continue_w').removeClass('d-none');
},10000);
}
$.ajax({
url: "ajax/save_video.php",
type: "POST",
data: {
id: id_video,
name: name,
fade: fade,
fps: fps,
resolution_w: resolution_w,
resolution_h: resolution_h,
audio: audio,
watermark_logo: window.watermark_logo,
watermark_pos: watermark_pos,
watermark_opacity: watermark_opacity
},
async: true,
success: function (json) {
var rsp = JSON.parse(json);
if(rsp.status=="ok") {
window.video_need_save = false;
$('#save_btn .icon i').removeClass('fas fa-circle-notch fa-spin').addClass('fas fa-check');
setTimeout(function () {
$('#save_btn .icon i').removeClass('fas fa-check').addClass('far fa-circle');
$('#save_btn').removeClass("disabled");
},1000);
if(generate) {
switch(window.video_type) {
case 'local':
var url_ajax = "../services/generate_video.php";
break;
case 'cloud':
var url_ajax = "../services/generate_video_cloud.php";
break;
}
$.ajax({
url: url_ajax,
type: "POST",
data: {
id_virtualtour: id_virtualtour,
id_video: id_video
},
async: true,
success: function (json) {
try {
var rsp = JSON.parse(json);
if(rsp.status=='ok') {
$('#modal_generate_video').modal('hide');
location.reload();
} else {
$('#btn_generate_video').removeClass('disabled');
$('#modal_generate_video').modal('hide');
alert(rsp.msg);
}
} catch (e) {
$('#btn_generate_video').removeClass('disabled');
$('#modal_generate_video').modal('hide');
alert(window.backend_labels.generic_error_msg);
}
},
error: function () {
$('#btn_generate_video').removeClass('disabled');
$('#modal_generate_video').modal('hide');
alert(window.backend_labels.generic_error_msg);
}
});
}
} else {
$('#save_btn .icon i').removeClass('fas fa-circle-notch fa-spin').addClass('fas fa-times');
$('#save_btn').removeClass('btn-success').addClass('btn-danger');
setTimeout(function () {
$('#save_btn .icon i').removeClass('fas fa-times').addClass('far fa-circle');
$('#save_btn').removeClass('btn-danger').addClass('btn-success');
$('#save_btn').removeClass("disabled");
},1000);
if(generate) {
$('#btn_generate_video').removeClass('disabled');
}
}
},
error: function() {
$('#save_btn .icon i').removeClass('fas fa-circle-notch fa-spin').addClass('fas fa-times');
$('#save_btn').removeClass('btn-success').addClass('btn-danger');
setTimeout(function () {
$('#save_btn .icon i').removeClass('fas fa-times').addClass('far fa-circle');
$('#save_btn').removeClass('btn-danger').addClass('btn-success');
$('#save_btn').removeClass("disabled");
},1000);
if(generate) {
$('#btn_generate_video').removeClass('disabled');
}
}
});
}
}
window.continue_w_video360 = function() {
window.open(location.href.replace('p=video360','p=dashboard'), '_blank').focus();
$('#btn_continue_w').hide();
}
window.continue_w_video = function() {
window.open(location.href.replace('p=edit_video&id='+window.id_video,'p=dashboard'), '_blank').focus();
$('#btn_continue_w').hide();
}
window.continue_w_slideshow = function() {
window.open(location.href.replace('p=gallery','p=dashboard'), '_blank').focus();
$('#btn_continue_w').hide();
}
var points_selection = '', activePoint_selection, cursor_selection, dragging_selection = false, handler_selection = true, canvas_selection, ctx_selection, polygon_selection, request_selection_id = undefined;
var mouse_selection = {x: 0, y: 0, button: 0, lx: 0, ly: 0, update: true};
var init_canvas_mode = '';
function init_canvas_selection(id) {
init_canvas_mode = 'poi';
stop_canvas_selection(id);
points_selection = window.pois[poi_index_edit].embed_params;
canvas_selection = document.getElementById('canvas_selection_'+id);
ctx_selection = canvas_selection.getContext("2d");
ctx_selection.lineWidth = window.pois[poi_index_edit].embed_content.replace('border-width:','').replace('px;','');;
ctx_selection.strokeStyle = window.pois[poi_index_edit].background;
if(!request_selection_id) {
request_selection_id = requestAnimationFrame(update_canvas_selection);
}
["mousedown", "mouseup", "mousemove"].forEach(name => canvas_selection.addEventListener(name, mouseEvents_selection));
polygon_selection = poly_selection();
if(points_selection!='') {
polygon_selection.points = JSON.parse(points_selection);
polygon_selection.closed = true;
}
}
function init_canvas_selection_m(id) {
init_canvas_mode = 'marker';
stop_canvas_selection(id);
points_selection = window.markers[marker_index_edit].embed_params;
canvas_selection = document.getElementById('canvas_selection_'+id);
ctx_selection = canvas_selection.getContext("2d");
ctx_selection.lineWidth = window.markers[marker_index_edit].embed_content.replace('border-width:','').replace('px;','');;
ctx_selection.strokeStyle = window.markers[marker_index_edit].background;
if(!request_selection_id) {
request_selection_id = requestAnimationFrame(update_canvas_selection);
}
["mousedown", "mouseup", "mousemove"].forEach(name => canvas_selection.addEventListener(name, mouseEvents_selection));
polygon_selection = poly_selection();
if(points_selection!='') {
polygon_selection.points = JSON.parse(points_selection);
polygon_selection.closed = true;
}
}
function stop_canvas_selection() {
if (request_selection_id) {
cancelAnimationFrame(request_selection_id);
request_selection_id = undefined;
}
}
function mouseEvents_selection(e) {
mouse_selection.x = e.offsetX;
mouse_selection.y = e.offsetY;
mouse_selection.button = e.type === "mousedown" ? true : e.type === "mouseup" ? false : mouse_selection.button;
mouse_selection.update = true;
}
const point_selection = (x, y) => ({x, y});
const poly_selection = () => ({
points: [],
closed: false,
addPoint(p) {
if(!polygon_selection.closed) {
this.points.push(point_selection(p.x, p.y));
}
},
draw() {
switch(init_canvas_mode) {
case 'poi':
ctx_selection.lineWidth = window.pois[poi_index_edit].embed_content.replace('border-width:','').replace('px;','');
ctx_selection.strokeStyle = window.pois[poi_index_edit].color;
ctx_selection.fillStyle = window.pois[poi_index_edit].background;
break;
case 'marker':
ctx_selection.lineWidth = window.markers[marker_index_edit].embed_content.replace('border-width:','').replace('px;','');
ctx_selection.strokeStyle = window.markers[marker_index_edit].color;
ctx_selection.fillStyle = window.markers[marker_index_edit].background;
break;
}
ctx_selection.beginPath();
for (const p of this.points) { ctx_selection.lineTo(p.x, p.y) }
this.closed && ctx_selection.closePath();
ctx_selection.stroke();
this.closed && ctx_selection.fill();
if(handler_selection) {
var num_p = 0;
for (const p of this.points) {
if(num_p==0 && !this.closed) {
ctx_selection.fillStyle = 'rgba(255, 255, 255, 0.7)';
ctx_selection.strokeStyle = 'rgba(255, 255, 255, 0.9)';
} else {
switch(init_canvas_mode) {
case 'poi':
ctx_selection.fillStyle = window.pois[poi_index_edit].background;
ctx_selection.strokeStyle = window.pois[poi_index_edit].color;
break;
case 'marker':
ctx_selection.fillStyle = window.markers[marker_index_edit].background;
ctx_selection.strokeStyle = window.markers[marker_index_edit].color;
break;
}
}
ctx_selection.beginPath();
ctx_selection.moveTo(p.x + 5, p.y);
ctx_selection.arc(p.x, p.y, 5, 0, Math.PI * 2);
ctx_selection.fill();
ctx_selection.stroke();
num_p++;
}
if(num_p>0) {
if(this.closed) {
$('#btn_save_polygon').removeClass('disabled');
}
$('#btn_clear_polygon').removeClass('disabled');
}
}
},
closest(pos, dist = 5) {
var i = 0,
index = -1;
dist *= dist;
for (const p of this.points) {
var x = pos.x - p.x;
var y = pos.y - p.y;
var d2 = x * x + y * y;
if (d2 < dist) {
dist = d2;
index = i;
}
i++;
}
if (index > -1) { return this.points[index] }
}
});
function draw_polygon(ctx_selection,points,border,background,color) {
ctx_selection.lineWidth = border;
ctx_selection.strokeStyle = color;
ctx_selection.fillStyle = background;
var pol = new Path2D();
for (const p of points) { pol.lineTo(p.x, p.y) }
pol.closePath();
ctx_selection.stroke(pol);
ctx_selection.fill(pol);
}
function drawCircle_selection(pos, color = "black", size = 5) {
ctx_selection.strokeStyle = color;
ctx_selection.beginPath();
ctx_selection.arc(pos.x, pos.y, size, 0, Math.PI * 2);
ctx_selection.stroke();
}
function update_canvas_selection() {
request_selection_id = undefined;
if (mouse_selection.update) {
cursor_selection = "crosshair";
ctx_selection.clearRect(0, 0, canvas_selection.width, canvas_selection.height);
if (!dragging_selection) { activePoint_selection = polygon_selection.closest(mouse_selection) }
if (activePoint_selection === undefined && mouse_selection.button) {
polygon_selection.addPoint(mouse_selection);
mouse_selection.button = false;
} else if (activePoint_selection) {
if (mouse_selection.button) {
if (dragging_selection) {
activePoint_selection.x += mouse_selection.x - mouse_selection.lx;
activePoint_selection.y += mouse_selection.y - mouse_selection.ly;
} else {
if (!polygon_selection.closed && polygon_selection.points.length > 2 && activePoint_selection === polygon_selection.points[0]) {
polygon_selection.closed = true;
}
dragging_selection = true
}
} else { dragging_selection = false }
}
polygon_selection.draw();
if (activePoint_selection && handler_selection) {
drawCircle_selection(activePoint_selection);
cursor_selection = "move";
}
mouse_selection.lx = mouse_selection.x;
mouse_selection.ly = mouse_selection.y;
canvas_selection.style.cursor = cursor_selection;
mouse_selection.update = false;
}
if(!request_selection_id) {
request_selection_id = requestAnimationFrame(update_canvas_selection);
}
}
window.draw_polygon_selection = function () {
window.draw_polygon_mode = 1;
var id = window.poi_id_edit;
$('#btn_clear_polygon').addClass('disabled');
$('#btn_save_polygon').addClass('disabled');
$('#poi_embded_move_'+id).css({'opacity':0,'pointer-events':'none'});
$('#poi_embded_helper_'+id+'_1').css({'opacity':0,'pointer-events':'none'});
$('#poi_embded_helper_'+id+'_2').css({'opacity':0,'pointer-events':'none'});
$('#poi_embded_helper_'+id+'_3').css({'opacity':0,'pointer-events':'none'});
$('#poi_embded_helper_'+id+'_4').css({'opacity':0,'pointer-events':'none'});
$('.poi_embed_'+id+' .poi_embed_selection').css('background','none');
$('.poi_embed_'+id+' .poi_embed_selection').css('border-color','rgba(255,255,255,0.4)');
init_canvas_selection(id);
$('#confirm_move').hide();
$('#confirm_polygon').show();
}
window.draw_polygon_selection_m = function () {
window.draw_polygon_mode = 1;
var id = window.marker_id_edit;
$('#btn_clear_polygon').addClass('disabled');
$('#btn_save_polygon').addClass('disabled');
$('#marker_embded_move_'+id).css({'opacity':0,'pointer-events':'none'});
$('#marker_embded_helper_'+id+'_1').css({'opacity':0,'pointer-events':'none'});
$('#marker_embded_helper_'+id+'_2').css({'opacity':0,'pointer-events':'none'});
$('#marker_embded_helper_'+id+'_3').css({'opacity':0,'pointer-events':'none'});
$('#marker_embded_helper_'+id+'_4').css({'opacity':0,'pointer-events':'none'});
$('.marker_embed_'+id+' .marker_embed_selection').css('background','none');
$('.marker_embed_'+id+' .marker_embed_selection').css('border-color','rgba(255,255,255,0.4)');
init_canvas_selection_m(id);
$('#confirm_move').hide();
$('#confirm_polygon').show();
}
window.close_polygon_selection = function () {
window.draw_polygon_mode = 0;
var id = window.poi_id_edit;
stop_canvas_selection();
render_poi(window.poi_id_edit,window.poi_index_edit);
$('#poi_embded_move_'+id).css({'opacity':1,'pointer-events':'initial'});
$('#poi_embded_helper_'+id+'_1').css({'opacity':1,'pointer-events':'initial'});
$('#poi_embded_helper_'+id+'_2').css({'opacity':1,'pointer-events':'initial'});
$('#poi_embded_helper_'+id+'_3').css({'opacity':1,'pointer-events':'initial'});
$('#poi_embded_helper_'+id+'_4').css({'opacity':1,'pointer-events':'initial'});
$('#confirm_move').show();
$('#confirm_polygon').hide();
}
window.close_polygon_selection_m = function () {
window.draw_polygon_mode = 0;
var id = window.marker_id_edit;
stop_canvas_selection();
render_marker(window.marker_id_edit,window.marker_index_edit);
$('#marker_embded_move_'+id).css({'opacity':1,'pointer-events':'initial'});
$('#marker_embded_helper_'+id+'_1').css({'opacity':1,'pointer-events':'initial'});
$('#marker_embded_helper_'+id+'_2').css({'opacity':1,'pointer-events':'initial'});
$('#marker_embded_helper_'+id+'_3').css({'opacity':1,'pointer-events':'initial'});
$('#marker_embded_helper_'+id+'_4').css({'opacity':1,'pointer-events':'initial'});
$('#confirm_move').show();
$('#confirm_polygon').hide();
}
window.clear_polygon_selection = function() {
points_selection = '';
window.pois[poi_index_edit].embed_params = '';
var id = window.poi_id_edit;
$('#btn_clear_polygon').addClass('disabled');
$('#btn_save_polygon').addClass('disabled');
stop_canvas_selection();
canvas_selection = document.getElementById('canvas_selection_'+id);
ctx_selection = canvas_selection.getContext("2d");
ctx_selection.clearRect(0, 0, canvas_selection.width, canvas_selection.height);
init_canvas_selection(id);
$('.poi_embed_'+id+' .poi_embed_selection canvas').trigger('click');
}
window.clear_polygon_selection_m = function() {
points_selection = '';
window.markers[marker_index_edit].embed_params = '';
var id = window.marker_id_edit;
$('#btn_clear_polygon').addClass('disabled');
$('#btn_save_polygon').addClass('disabled');
stop_canvas_selection();
canvas_selection = document.getElementById('canvas_selection_'+id);
ctx_selection = canvas_selection.getContext("2d");
ctx_selection.clearRect(0, 0, canvas_selection.width, canvas_selection.height);
init_canvas_selection_m(id);
$('.marker_embed_'+id+' .marker_embed_selection canvas').trigger('click');
}
window.save_polygon_selection = function () {
var points = JSON.stringify(polygon_selection.points);
window.pois[poi_index_edit].embed_params = points;
close_polygon_selection();
}
window.save_polygon_selection_m = function () {
var points = JSON.stringify(polygon_selection.points);
window.markers[marker_index_edit].embed_params = points;
close_polygon_selection_m();
}
window.toggle_fullscreen_div = function(id) {
if (
document.fullscreenElement ||
document.webkitFullscreenElement ||
document.mozFullScreenElement ||
document.msFullscreenElement
) {
window.is_fullscreen = false;
if (document.exitFullscreen) {
document.exitFullscreen();
} else if (document.mozCancelFullScreen) {
document.mozCancelFullScreen();
} else if (document.webkitExitFullscreen) {
document.webkitExitFullscreen();
} else if (document.msExitFullscreen) {
document.msExitFullscreen();
}
} else {
window.is_fullscreen = true;
var element = $('#'+id).get(0);
if (element.requestFullscreen) {
element.requestFullscreen();
} else if (element.mozRequestFullScreen) {
element.mozRequestFullScreen();
} else if (element.webkitRequestFullscreen) {
element.webkitRequestFullscreen(Element.ALLOW_KEYBOARD_INPUT);
} else if (element.msRequestFullscreen) {
element.msRequestFullscreen();
}
}
}
window.set_friendly_url = function() {
var friendly_url = $('#friendly_url').val();
$('#btn_friendly_url').addClass('disabled');
$.ajax({
url: "ajax/set_friendly_url.php",
type: "POST",
data: {
type: 'virtual_tour',
id: window.id_virtualtour,
friendly_url: friendly_url
},
async: true,
success: function (json) {
var rsp = JSON.parse(json);
if (rsp.status == "ok") {
$('#friendly_url').removeClass('error-highlight');
location.reload();
} else {
$('#btn_friendly_url').removeClass('disabled');
$('#friendly_url').addClass('error-highlight');
}
}
});
}
window.change_friendly_url = function(type,id_elem,id) {
var friendly_url = $('#'+id_elem).val();
if(friendly_url=='') {
$('#'+id_elem).parent().find('.input-group-append').addClass('disabled');
$('#link_f_vr').parent().addClass('disabled');
} else {
$('#'+id_elem).parent().find('.input-group-append').removeClass('disabled');
$('#link_f_vr').parent().removeClass('disabled');
}
var url = window.link_f+friendly_url;
var url_vr = window.link_f_vr+friendly_url;
$.ajax({
url: 'ajax/set_friendly_url.php',
type: "POST",
data: {
type: type,
id: id,
friendly_url: friendly_url
},
async: true,
success: function (json) {
var rsp = JSON.parse(json);
if(rsp.status=='ok') {
$('#link_open').attr('href',url);
$('#link_copy').attr('data-clipboard-text',url);
$('#link_qr').attr('onclick','open_qr_code_modal(\''+url+'\')');
$('#link_open_vr').attr('href',url_vr);
$('#link_copy_vr').attr('data-clipboard-text',url_vr);
$('#link_qr_vr').attr('onclick','open_qr_code_modal(\''+url_vr+'\')');
$('#link_f_vr').val(url_vr);
$('#'+id_elem).removeClass('error-highlight');
$('#'+id_elem).css('color','unset');
} else {
$('#'+id_elem).addClass('error-highlight');
$('#'+id_elem).css('color','red');
}
}
})
}
window.delete_image_meta = function (type,id) {
window.image_meta = '';
$('#div_delete_image_meta').hide();
$('#div_upload_image_meta').show();
if(window.image_meta_default=='') {
$('.facebook-preview__image').addClass('d-none');
$('.facebook-preview__image').attr('src','');
} else {
$('.facebook-preview__image').removeClass('d-none');
if(type=='landing' || type=='virtual_tour') {
if(window.s3_enabled==1) {
$('.facebook-preview__image').attr('src',window.s3_url+'viewer/content/'+window.image_meta_default);
} else {
$('.facebook-preview__image').attr('src','../viewer/content/'+window.image_meta_default);
}
} else {
$('.facebook-preview__image').attr('src','../viewer/content/'+window.image_meta_default);
}
}
save_metadata(type,id);
}
window.change_meta_title = function() {
var meta_title = '';
if($('#meta_title').is(':visible')) {
meta_title = $('#meta_title').val();
} else {
$('.input_lang[data-target-id="meta_title"]').each(function() {
if($(this).is(':visible')) {
meta_title = $(this).val();
}
});
}
meta_title = DOMPurify.sanitize(meta_title);
if(meta_title=='') {
if(window.title_meta_default=='') {
$('.facebook-preview__title').html('');
} else {
$('.facebook-preview__title').html(title_meta_default);
}
} else {
$('.facebook-preview__title').html(meta_title);
}
}
window.change_meta_description = function() {
var meta_description = '';
if($('#meta_description').is(':visible')) {
meta_description = $('#meta_description').val();
} else {
$('.input_lang[data-target-id="meta_description"]').each(function() {
if($(this).is(':visible')) {
meta_description = $(this).val();
}
});
}
meta_description = DOMPurify.sanitize(meta_description);
if(meta_description=='') {
if(window.description_meta_default=='') {
$('.facebook-preview__description').html('');
} else {
$('.facebook-preview__description').html(description_meta_default);
}
} else {
$('.facebook-preview__description').html(meta_description);
}
}
window.save_metadata = function(type,id) {
var meta_title = $('#meta_title').val();
var meta_description = $('#meta_description').val();
var array_lang = {};
array_lang['meta_title'] = {};
$('.input_lang[data-target-id="meta_title"]').each(function() {
var lang = $(this).attr('data-lang');
var value = $(this).val();
array_lang['meta_title'][lang]=value;
});
array_lang['meta_description'] = {};
$('.input_lang[data-target-id="meta_description"]').each(function() {
var lang = $(this).attr('data-lang');
var value = $(this).val();
array_lang['meta_description'][lang]=value;
});
var array_lang_json = JSON.stringify(array_lang);
$.ajax({
url: 'ajax/save_metadata.php',
type: "POST",
data: {
type: type,
id: id,
meta_title: meta_title,
meta_description: meta_description,
meta_image: window.image_meta,
array_lang: array_lang_json
},
async: true,
success: function (json) {}
})
}
window.switch_custom_mode = function(mode) {
switch(mode) {
case 'backend':
$('#btn_custom_backend').removeClass('btn-outline-primary').addClass('btn-primary');
$('#btn_custom_viewer').addClass('btn-outline-primary').removeClass('btn-primary');
$('#custom_viewer_div').addClass('d-none');
$('#custom_backend_div').removeClass('d-none');
break;
case 'viewer':
$('#btn_custom_viewer').removeClass('btn-outline-primary').addClass('btn-primary');
$('#btn_custom_backend').addClass('btn-outline-primary').removeClass('btn-primary');
$('#custom_viewer_div').removeClass('d-none');
$('#custom_backend_div').addClass('d-none');
break;
}
}
window.refresh_session = function() {
setInterval(function() {
$.ajax({
url: 'ajax/refresh_session.php',
type: "POST",
data: {},
async: true,
success: function (json) {}
})
},60000);
}
window.change_delete_user_assign = function() {
var id = $('#user_assign option:selected').attr('id');
if(id==0) {
$('#warning_delete_msg').show();
} else {
$('#warning_delete_msg').hide();
}
}
window.generate_favicons = function(url) {
if(url=='manual') {
var url_ajax = '../services/generate_favicons.php?what=all';
$('#modal_pwa').modal('show');
} else {
var url_ajax = url;
}
$.ajax({
url: url_ajax,
type: "POST",
async: true,
success: function() {
if(url=='manual') {
$('#modal_pwa').modal('hide');
}
},
error: function() {
if(url=='manual') {
$('#modal_pwa').modal('hide');
}
}
})
}
window.click_tab_resize = function() {
setTimeout(function() {
$(window).trigger('resize');
},50);
}
window.assign_all_tour_to_editor = function() {
var retVal = confirm(window.backend_labels.assign_sure_msg);
if( retVal == true ) {
$('#btn_assign_all').addClass('disabled');
$('#btn_unassign_all').addClass('disabled');
$.ajax({
url: "ajax/assign_all_tour_to_editor.php",
type: "POST",
data: {
id_svt: window.id_user_edit,
assign: 1
},
async: true,
success: function (json) {
$('#assign_vt_table').DataTable().ajax.reload();
}
});
} else {
return false;
}
}
window.unassign_all_tour_to_editor = function() {
var retVal = confirm(window.backend_labels.unassign_sure_msg);
if( retVal == true ) {
$('#btn_assign_all').addClass('disabled');
$('#btn_unassign_all').addClass('disabled');
$.ajax({
url: "ajax/assign_all_tour_to_editor.php",
type: "POST",
data: {
id_svt: window.id_user_edit,
assign: 0
},
async: true,
success: function (json) {
$('#assign_vt_table').DataTable().ajax.reload();
}
});
} else {
return false;
}
}
window.assign_all_editor_to_tour = function() {
var retVal = confirm(window.backend_labels.assign_sure_msg);
if( retVal == true ) {
$('#btn_assign_all').addClass('disabled');
$('#btn_unassign_all').addClass('disabled');
$.ajax({
url: "ajax/assign_all_editor_to_tour.php",
type: "POST",
data: {
id_svt: window.id_virtualtour,
assign: 1
},
async: true,
success: function (json) {
$('#assign_editors_table').DataTable().ajax.reload();
}
});
} else {
return false;
}
}
window.unassign_all_editor_to_tour = function() {
var retVal = confirm(window.backend_labels.unassign_sure_msg);
if( retVal == true ) {
$('#btn_assign_all').addClass('disabled');
$('#btn_unassign_all').addClass('disabled');
$.ajax({
url: "ajax/assign_all_editor_to_tour.php",
type: "POST",
data: {
id_svt: window.id_virtualtour,
assign: 0
},
async: true,
success: function (json) {
$('#assign_editors_table').DataTable().ajax.reload();
}
});
} else {
return false;
}
}
window.switch_dark_mode = function() {
if(localStorage.getItem("dark_mode")=='1') {
var dark_mode = 1;
} else {
var dark_mode = 0;
}
if(dark_mode==0) {
$('.btn_mode_switcher').attr('id','btn_dark_mode');
$('.btn_mode_switcher').removeClass('fa-sun').addClass('fa-moon');
document.body.classList.add("dark_mode");
localStorage.setItem("dark_mode",'1');
} else {
$('.btn_mode_switcher').attr('id','btn_light_mode');
$('.btn_mode_switcher').removeClass('fa-moon').addClass('fa-sun');
document.body.classList.remove("dark_mode");
localStorage.setItem("dark_mode",'0');
}
}
window.change_aws_s3_type = function() {
var type = $('#aws_s3_type option:selected').attr('id');
switch(type) {
case 'aws':
$('#aws_instructions').removeClass('d-none');
$('#r2_instructions').addClass('d-none');
$('#digitalocean_instructions').addClass('d-none');
$('#aws_s3_region').removeClass('d-none');
$('#aws_s3_region_digitalocean').addClass('d-none');
$('#aws_s3_region_r2').addClass('d-none');
$('#aws_s3_accountid').prop('disabled',true);
break;
case 'r2':
$('#aws_instructions').addClass('d-none');
$('#r2_instructions').removeClass('d-none');
$('#digitalocean_instructions').addClass('d-none');
$('#aws_s3_region').addClass('d-none');
$('#aws_s3_region_digitalocean').addClass('d-none');
$('#aws_s3_region_r2').removeClass('d-none');
$('#aws_s3_accountid').prop('disabled',false);
break;
case 'digitalocean':
$('#aws_instructions').addClass('d-none');
$('#r2_instructions').addClass('d-none');
$('#digitalocean_instructions').removeClass('d-none');
$('#aws_s3_region').addClass('d-none');
$('#aws_s3_region_digitalocean').removeClass('d-none');
$('#aws_s3_region_r2').addClass('d-none');
$('#aws_s3_accountid').prop('disabled',true);
break;
}
$('#aws_s3_enabled').prop('disabled',true);
$('#aws_s3_enabled').prop('checked',false);
}
window.change_aws_s3_region = function() {
$('#aws_s3_enabled').prop('disabled',true);
$('#aws_s3_enabled').prop('checked',false);
}
window.change_globe_type = function() {
var type = $('#type option:selected').attr('id');
switch (type) {
case 'google':
$('#default_view').addClass('disabled');
break;
default:
$('#default_view').removeClass('disabled');
break;
}
}
window.change_shop_type = function() {
var type = $('#shop_type option:selected').attr('id');
switch (type) {
case 'woocommerce':
$('.snipcart_setting').addClass('d-none');
$('.woocommerce_setting').removeClass('d-none');
break;
default:
$('.snipcart_setting').removeClass('d-none');
$('.woocommerce_setting').addClass('d-none');
break;
}
}
window.change_font_provider = function() {
var font_provider = $('#font_provider option:selected').attr('id');
switch(font_provider) {
case 'systems':
$('.font-picker').addClass('d-none');
$('#font_backend_system').removeClass('d-none');
apply_system_font();
break;
case 'google':
$('.font-picker').removeClass('d-none');
$('#font_backend_system').addClass('d-none');
var font_family = $('#font_backend').val();
$('#font_backend_link').attr('href','https://fonts.googleapis.com/css?family='+font_family);
$('#style_css').html("* { font-family:'"+font_family+"',sans-serif; }");
break;
case 'collabs':
$('.font-picker').removeClass('d-none');
$('#font_backend_system').addClass('d-none');
var font_family = $('#font_backend').val();
$('#font_backend_link').attr('href','https://api.fonts.coollabs.io/css2?family='+font_family+'&display=swap');
$('#style_css').html("* { font-family:'"+font_family+"',sans-serif; }");
break;
}
}
window.apply_system_font = function() {
var font_family = $('#font_backend_system option:selected').attr('id');
$('#style_css').html("*:not(i):not(.fas):not(.far):not(.fab):not(.leader-line):not(.leader-line *):not(.vjs-icon-placeholder):not(.vjs-play-progress) { font-family:'"+font_family+"',sans-serif; }");
}
window.apply_system_font_editor_ui = function() {
var font_family = $('#font_viewer_system option:selected').attr('id');
$('#ui_container *:not(i):not(.controls_btn):not(.menu_controls):not(.list_alt_menu):not(.song_control):not(.title):not(.dropdown)').css('font-family',"'"+font_family+"', sans-serif");
}
var sound_hb = new Audio();
window.play_sound = function(id_select) {
try {
sound_hb.pause();
} catch (e) {}
var sound = $('#'+id_select+' option:selected').attr('id');
if(sound!='') {
sound_hb.src = ((window.s3_enabled) ? window.s3_url : '../viewer/') + 'content/'+sound;
try {
sound_hb.play();
} catch (e) {}
}
}
window.change_auto_presentation_speed = function() {
var value = $('#auto_presentation_speed').val();
$('#auto_presentation_speed_value').html(value);
}
window.open_list_hs = function() {
$('#slider_hs_list').addClass('open');
}
window.close_list_hs = function() {
$('#slider_hs_list').removeClass('open');
}
})(jQuery); // End of use strict