/*
* Copyright 2018-2022 KFI
* http://www.kfi.li
*/
var mobilev = 500;
var licznik = 0,
kierunek = 'r',
arrow = {};
var aktywny = '';
var stopSlup = 0;
var wczytywanie = false;
var obroty = false;
var aspeed = 1, bspeed = 1;
var kolor = {md:'#ffffff', ms:'#111111', ad:'#9F0000', as:'#9F0000',ss:'#111',}
var typslupa = "s-190"; //s-235, s-295
var gruboscslupa = 7; // 9
var startzaun = 'z-180x180';
var startslup = 'slup-180-okr-gr7';
var startkolor = 'grun';
var kolorslupa = '0.8 0.8 0.8';
var hasicons = true; //icons from DB
$ikonki = ['boleo-180x180.svg','boleo-90x180.svg','boleo-90x180T.svg','boleo-180x160.svg','boleo-90x160.svg','boleo-90x160T.svg'];
var technik = {
[startzaun]:{dl:'180', hl:'180', hr:'180', opis:'BOLEO Bohlen-Zaun gerade
180x180cm', obraz:$ikonki[0]},
'z-90x180':{dl:'90', hl:'180', hr:'180', opis:'BOLEO Bohlen-Zaun gerade
90x180cm', obraz:$ikonki[1]},
'z-90x180T2':{dl:'90', hl:'180', hr:'90', opis:'BOLEO Bohlen-Zaun Abschlusselement groß
90x180/90cm', obraz:$ikonki[2]},
'z-90x180T':{dl:'90', hl:'90', hr:'180', opis:'BOLEO Bohlen-Zaun Abschlusselement groß
90x180/90cm', obraz:$ikonki[2]},
'z-180x160':{dl:'180', hl:'180', hr:'180', opis:'BOLEO Bohlen-Zaun mit Bogen
180x180/160cm', obraz:$ikonki[3]},
'z-90x160':{dl:'90', hl:'180', hr:'180', opis:'BOLEO Bohlen-Zaun mit Bogen
90x180/160cm', obraz:$ikonki[4]},
'z-90x160T2':{dl:'90', hl:'180', hr:'90', opis:'BOLEO Bohlen-Zaun Abschlusselement klein
90x160/90cm', obraz:$ikonki[5]},
'z-90x160T':{dl:'90', hl:'90', hr:'180', opis:'BOLEO Bohlen-Zaun Abschlusselement klein
90x160/90cm', obraz:$ikonki[5]},
};
var koloryplotu = {grun:'-Z', 'grau':'-G','braun':'-B','larchenoptik':'-Lo'};
if(!cennik['z-180x180-G']) {delete koloryplotu['grau'];}
if(!cennik['z-180x180-Z']) {delete koloryplotu['grun']; startkolor = Object.keys(koloryplotu)[0];}
if(jQuery.isEmptyObject(koloryplotu)) {
alert('STOP! Zaun 180x180cm - kein Artikel');
window.location.href = '/de/';
}
$.each(technik, function( k, v ) {
if(!cennik[k+koloryplotu[startkolor]]) {
if(k=='z-90x180T2' || k=='z-90x160T2') return true;
delete technik[k];
if(k=='z-90x180T' || k=='z-90x160T') delete technik[k+"2"];
}
});
var slupdrewno = 1;
var stukolor = '#35373A';
var anthrazit = '#35373A'; //'#22282A';
var silber = '0.8 0.8 0.8';
//INTERFEJS
function interfejs(){
if (typeof (Storage) == "undefined") {
alert('Sorry, your browser is too old! Update your browser!');
return;
}
localStorage.setItem('wersja',sesja+nazwaplotu);
document.getElementById('x3dElement').runtime.speed(aspeed);
//MENU PLOTOW
let iconpath = "../icons/";
if (typeof hasicons === 'undefined') iconpath = "//media.delta-gartenholz.com/svg-01/";
$.each(technik, function( k, v ) {
var classimg="";
let tabT2 = ['z-90x180T2','z-90x160T2','z-90x180T-F2','z-90x180T-L2','zm-90x180T2','zm-90x160T2'];
if(tabT2.includes(k)) classimg = "flipimg";
else if(k=='z-180x180R' || k=='z-120x180R' || k=='z-60x180R') classimg = "rotimg";
$(".akcesoria").append('');
});
if(cennik['sturmanker-A'] || cennik['sturmanker-S']) $(".akcesoria").append('');
if(cennik['plano']) $(".akcesoria").append('');
$(".akcesoria").prepend('');
$(".akcesoria").prepend('');
if(nazwaplotu=='anjo')
$(".akcesoria").prepend(`
Profillänge
`);
customMenu();
localStorage.removeItem('pamiec');
localStorage.removeItem('licznik');
rozpocznij();
statusy();
}// /intefejs
function customMenu(){
$(".kolory").addClass('customizer accordion');
$(".kolory").append(``);
var acbuttons = '';
acItems+=``;
}
//Pfosten
acbuttons ='Pfostenmaterial
';
acbuttons += '';
acbuttons +='';
acbuttons +='
'+TxKolorSlupow+'
';
acbuttons += '
';
//Pfosten Montage
acbuttons +='
'+TxSposobMontazu+'
';
acbuttons += opcjeSposobMontazu();
acbuttons +='
';
acItems+=``;
//Sturmankers
if(cennik['sturmanker-A'] || cennik['sturmanker-S']){
acbuttons =``;
if(cennik['sturmanker-A'] || cennik['sturmanker-S']){
acbuttons+=`';
}
if(cennik['plano']) {
acbuttons+=`';
}
acItems+=``;
}
$('#accordionConfig').append(acItems);
rysujilekontener(); //kontener ile
}// /custommenu
//rozpocznij
function rozpocznij(){
if (typeof sharing === 'undefined') {
// variable is undefined
} else {
if(sharing.length > 10) {
wczytajShr(sharing);
return false;
}
}
$('.dodatek').removeClass('ba');
kolorslupa = silber;
localStorage.setItem('lskolor',startkolor);
licznik = 0;
wczytywanie = true;
$('body').addClass('stepbystep');
$('.steponly').show();
if($('#w0__'+startslup).length > 0 ){
$('#w0__Scena').empty();
} else {
alert('problem 1');
}
var tmp = $('#w0__'+startslup).eq(0).contents().clone();
if(tmp.length > 0)
{
$('#w0__Scena').append("");
$('#start-slup').append(tmp);
} else alert('problem 2');
$('.ekran').css('visibility','visible');
$("body").addClass('bodybg');
if(($('#w0__Scena').children().length == 0)){
console.log('problem');
alert('problem 3');
} else
{
aktywny = "start-slup";
kierunek="r";
$('.'+startzaun+'.plot.dodatek.act').click();
//kolor paneli
if (typeof onecolor === 'undefined') {
$('.farba.'+startkolor).addClass('ba');
$('.farba.'+startkolor).click();
} else {ustawOnekolor();}
//grubosc slupa
$('.gruboscslupa.gr9').click();
$('#pokrywa').prop('checked',false);
wczytywanie = false;
zapiszLS();
rysujTrawnik();
$('.farby').click();
fitView();
$('.collapse').collapse('hide');
}
} // /rozpocznij
//WCZYTAJ
function wczytaj(){
var lspamiec = localStorage.getItem("pamiec");
if (lspamiec !== null && lspamiec.length > 1000) {
console.log('starting 2');
wczytywanie = true;
$('body').removeClass('stepbystep');
$('#w0__Scena').empty();
$('#w0__Scena').append(lspamiec);
if(($('#w0__Scena').children().length == 0)){
localStorage.setItem('pamiec',lspamiec);
wczytaj();
return;
}
licznik = localStorage.getItem("licznik");
var lskolor = localStorage.getItem('lskolor');
$('.farba.'+lskolor).prop('checked',true);
$('.bitmaptexture').each(function() {$(this).attr('url',$(this).attr('url').replace(/-[a-z]*\.jpg/,'-'+lskolor+'.jpg'));});
if($('#start-slup').hasClass('gr9')) {$('.gruboscslupa.gr9').click();}
else {
$('.gruboscslupa.gr7').click();
typslupa = $("#start-slup").attr('data-typ');
$('.typslupa.'+typslupa).click();
slupdrewno = 0;
if($('#start-slup').children('.slupbody').find('.pokrywa-kotwy').attr('render')=='true') $('#pokrywa').prop('checked',true);
zmienkolor = 'anthrazit';
if($('#start-slup').hasClass('slupsilber')) zmienkolor = 'silber';
$('.farbaslupa').removeClass('ba');
$('.farbaslupa.'+zmienkolor).click();
}
wczytywanie = false;
if(slupdrewno == 1) {
narozniki();
$('#planobox').show();
}
else {
$('.h-anker').attr('render','false');
$('.l-anker').attr('render','false');
$('#planobox').hide();
}
$('.collapse').collapse('hide');
zapiszLS();
rysujTrawnik();
//console.log('wczytane');
perspektywa();
setTimeout(function(){ perspektywa(); },1000);
//perspektywa();
//fitView();
$('.farby').click();
} else {
console.log('starting...');
localStorage.removeItem('pamiec');
localStorage.removeItem('licznik');
localStorage.removeItem('lskolor');
$('#w0__Scena').empty();
rozpocznij();
}
$('.ekran').css('visibility','visible');
$("body").css({"background":"#fff"});
}///wczytaj
//ZMIANA KOLORU
function ustawOnekolor(){
$('.bitmaptexture').each(function() {
$(this).attr('url',$(this).attr('url').replace(/-[a-z]*\.jpg/,'-'+startkolor+'.jpg'));
});
}
$(document).on("click", ".farba.dodatek.act", function(){
$('.farba').removeClass('ba');
$(this).addClass('ba');
var lskolor = $(this).attr("data-kolor");
let kolorslupa = lskolor;
if(nazwaplotu=='rhombus-sichtschutzzaun') { //DIY
let IFzaun = 'IF-z-180x180';
if(lskolor == 'larche') IFzaun = 'IF-diy-180x180';
else if(lskolor == 'diylarche') kolorslupa = "larche";
$('.rhombus180 IndexedFaceSet').remove();
$('.rhombus180').append('');
}
$('.bitmaptexture').each(function() {
$(this).attr('url',$(this).attr('url').replace(/-[a-z]*\.jpg/,'-'+lskolor+'.jpg'));
});
if(gruboscslupa==9) $('.sluptexture').each(function() {
$(this).attr('url',$(this).attr('url').replace(/-[a-z]*\.jpg/,'-'+kolorslupa+'.jpg'));
});
localStorage.setItem('lskolor',lskolor);
});
//click menu plot
$(document).on("click", ".plot.dodatek.act", function(){
if($(this).hasClass('ba')){ //usuwanie
return;
}
else if(aktywny.indexOf('slup') == -1) { //zamiana
var $idd = $(this).attr('data-produkt');
var dlplotu = $(this).attr('data-w');
var odlSlupa = parseInt(dlplotu) + parseInt(gruboscslupa);
var hl = $(this).attr('data-hl');
var hr = $(this).attr('data-hr');
var slup = $('#'+aktywny+'-slup');
var rodzicSlup = $('#'+aktywny).closest('.slup');
var kaktywny = $('#'+aktywny).attr('data-k');
var tmp = $('#w0__'+$idd).eq(0).contents().clone();
rodzicSlup.attr('data-h'+kaktywny, hl);
slup.attr('data-hl', hr);
podmienSlup2(rodzicSlup);
podmienSlup2(slup);
$('#'+aktywny).empty().append(tmp);
$('#'+aktywny).attr('data-p',$idd);
$('#'+aktywny).attr('data-w',dlplotu);
slup.attr('translation','0 0 '+odlSlupa);
Gate();
rysujTrawnik(); console.log('rystrawnik-clockdodaj')
odznacz();
fitView();
zapiszLS();
pmenu('hide');
}
else { //dodanie
var modelplotu = $(this).attr('data-produkt');
var dlplotu = parseInt($(this).attr('data-w'));
var wysl = $(this).attr('data-hl');
var wysr = $(this).attr('data-hr');
dodajPlot3(modelplotu, dlplotu, wysl, wysr);
}
});
var ilerazy = 1;
//Dodaj plot
dodajPlot3 = function($idd, dlplotu, hl, hr){ //DODAJ PLOT
licznik++;
var wysslupa = '180';
var rodzicSlup = $('#'+aktywny);
//usun sturmanker
if(kierunek == 'b' || kierunek == 'f'){
if(rodzicSlup.attr('data-hf')=='30') {rodzicSlup.children('.f_strona').empty(); rodzicSlup.attr('data-hf','0');rodzicSlup.children('.betony').attr('render','true');}
else if(rodzicSlup.attr('data-hb')=='30') {rodzicSlup.children('.b_strona').empty(); rodzicSlup.attr('data-hb','0');rodzicSlup.children('.betony').attr('render','true');}
}
var tmp = $('#w0__'+$idd).eq(0).contents().clone();
rodzicSlup.attr('data-h'+kierunek, hl);
podmienSlup2(rodzicSlup);
var $indeks = "plot-Q" + kierunek + "-" + licznik;
var odlSlup = dlplotu + parseInt(gruboscslupa);
var pozPlotu = gruboscslupa == '9' ? '4.5':'3.5';
$('#'+aktywny).children('.'+kierunek+'_strona').append("");
$('#'+$indeks).append(tmp);
if($idd=='sturmanker' || $idd=='plano'){ $('#'+aktywny).children('.betony').attr('render','false'); }
if(stopSlup != odlSlup){
if($idd!='sturmanker' && $idd!='plano'){
let tmpslup = $('#w0__'+startslup).eq(0).contents().clone();
wysslupa = hr;
$('#'+aktywny).children('.'+kierunek+'_strona').append("");
$('#'+$indeks+'-slup').append(tmpslup);
var nowyslup = $('#'+$indeks+'-slup');
podmienSlup2(nowyslup)
if(ilerazy>1) {
ilerazy--;
aktywny = $indeks+'-slup';
dodajPlot3($idd, dlplotu, hl, hr);
return;
}
}
}
if(!wczytywanie) rysujTrawnik();
if($('body').hasClass('stepbystep') && !wczytywanie){
ekran2();
} else {
pmenu('hide');
fitView();
}
if(slupdrewno == 1) narozniki();
Gate();
zapiszLS();
}//Dodaj Plot
//narozniki
function narozniki(){
$('scene .slup:not(.kula)').each(function() {
let kf = '0', kb = '0', kr = '0';
if($(this).attr('data-hf')!=='0' && $(this).attr('data-hf')!=='30') kf = '1';
if($(this).attr('data-hb')!=='0' && $(this).attr('data-hb')!=='30') kb = '1';
if($(this).attr('data-hr')!=='0' && $(this).attr('data-hr')!=='30') kr = '1';
if(kf == '1' || kb == '1') {
$(this).children('.h-anker').attr('render','false');
$(this).children('.l-anker').attr('render','true');
if($(this).attr('id')=='start-slup') $(this).children('.l-anker').attr('rotation','0 1 0 1.57')
else if(kb == '1' && kf =='1') $(this).children('.l-anker').attr('rotation','0 1 0 -1.57')
else if(kb == '1') $(this).children('.l-anker').attr('rotation','0 1 0 -3.14')
else $(this).children('.l-anker').attr('rotation','0 1 0 0')
}
else {$(this).children('.h-anker').attr('render','true');$(this).children('.l-anker').attr('render','false');}
});
}
function ekran2(){
$('body').removeClass('stepbystep');
$('.steponly').hide();
perspektywa();
$('#kolorpaneli').click();
}
//kierunek
wybierzKierunek = function(event){
$('#pmenulabel').text('einen Artikel hinzufügen');
$('.tab').hide();
$('.dodatek').addClass('act').show();
odznaczPlot();
var shape = $(event.target);
kierunek = shape.parent().parent().attr('data-k');
var myid = shape.closest('.slup').attr('id');
aktywny = myid ;
myid = '#'+myid ;
stopSlup = 0;
if(kierunek=='r' || kierunek=='l') {$('.sturmanker').hide();$('.plano').hide();}
else {
if(slupdrewno == 0) $('.plano').hide();
if($(myid).attr('data-hf')!="0") {$('.sturmanker').hide();$('.plano').hide();}
if($(myid).attr('data-hb')!="0") {$('.sturmanker').hide();$('.plano').hide();}
if((!cennik['sturmanker-A'] && kolorslupa == anthrazit) || (!cennik['sturmanker-S'] && kolorslupa == silber)) $('.sturmanker').hide();
}
if(arrow.length == 1){
arrow.parent().parent().find('Material').attr({diffuseColor:'#aaa'});
}
arrow = shape;
if(aktywny == 'start-slup'){
if($('.model').length==0) $('.dodatek').addClass('act');
}
pokazpasek();
$(".akcesoria").show();
pmenu('show');
$(".op.dodatki").addClass('zaznacz');
shape.parent().parent().find('Material').attr({diffuseColor:'#ff0000'});
var strona = '.'+kierunek+'_strona';
//sprawdzBlokady(aktywny, strona, 0);
$(".firstzaun").hide();
$('.oczy').show();
$('.kosz').hide();
$('.akcesoria .ba').removeClass('ba');
if(nazwaplotu=='anjo') {
$(".cut").hide();
$('.cutcontainer').hide();
}
event.stopPropagation();
}
function showSlupClick(){
$('.dopasuj').show();
$('.dopasuj').scrollTop(0);
}
//zaznacz slup
var shapeslup;
wskazSlup = function(event){
if($('body').hasClass('stepbystep')) return;
if(obroty) return;
var shape = $(event.target);
shapeslup = shape[0];
var id = shape.closest('.slup').attr('id');
if(id != aktywny){
let myid = id.replace('-slup','');
if(id == 'start-slup') pmenu('hide');
zaznaczPlot(myid);
} else {
if($('#pmenu').hasClass('show')) pmenu('hide');
else odznacz();
}
event.stopPropagation();
}
//zaznacz slup 2
function zaznaczSlup(myid){
let easylicznik = 1;
$(myid).children('.slupbody').find('.slupredbox').attr('transparency','0.5');
if($(myid).attr('data-hf')=='0' || $(myid).attr('data-hf')=='30'){
$(myid).children('Group').children('.arrow.f').attr('render','true');
} else easylicznik +=1;
if($(myid).children('.r_strona').children().length == 0){
$(myid).children('Group').children('.arrow.r').attr('render','true');
} else easylicznik +=1;
if($(myid).attr('data-hb')=='0' || $(myid).attr('data-hb')=='30'){
$(myid).children('Group').children('.arrow.b').attr('render','true');
} else easylicznik +=1;
if(myid == '#start-slup'){
easylicznik=easylicznik-1;
aktywny = 'start-slup';
}
if(easylicznik > 2) $(myid).children('Group').children('.arrow').attr('render','false');
}
//ZAZNACZ PLOT
function zaznaczPlot(myid){
$('.collapse').collapse('hide');
$('#pmenulabel').text('ausgewählter Zaun');
if($(window).width() > mobilev) {
$('#pmenu').removeClass('offcanvas-bottom').addClass('offcanvas-start'); pokazpasek();
} else $('#pmenu').removeClass('offcanvas-start').addClass('offcanvas-bottom');
id = myid;
if(id != aktywny){
odznacz();
aktywny = id;
$('#'+aktywny).find('.deska').find('Material').attr({diffuseColor:kolor['ad'],specularColor:kolor['as']});
$('#'+aktywny).find('.redbox').attr('transparency','0.5');
zaznaczSlup('#'+aktywny+'-slup');
if(aktywny=='start-slup') return;
var prodid = $('#'+aktywny).attr('data-p');
if(prodid == 'sturmanker'){
$(".plot.dodatek").hide();
$(".plot.sturmanker").show();
} else if(prodid == 'plano'){
$(".plot.dodatek").hide();
$(".plot.plano").show();
}
else {
$(".plot.dodatek").show();
$(".plot.sturmanker").hide();
$(".plot.plano").hide();
if(nazwaplotu=='anjo') {
if(prodid == 'z-180x180') {
$('.cut').show();
if( $('#'+aktywny).attr('data-w')!='180') {cutter();$('#collapseCut').collapse('show');}
}
else {$('.cut').hide();$('#collapseCut').collapse('hide');}
}
}
$(".plot.dodatek").addClass('act');
$(".akcesoria").show();
pmenu('show');
$('.'+prodid).addClass('act ba').show();
$('.oczy').show();
if(aktywny !== 'plot-Qr-1') {$('.kosz').show(); $('.firstzaun').hide(); fenceBin();}
else {$('.kosz').hide(); $('.firstzaun').show();}
if($('#'+aktywny).attr('data-p').indexOf('T')!=-1){
var nikotor = $('#w0__fencetor');
if(!nikotor.length) nikotor = '';
$('#'+aktywny).append(nikotor);
$('#w0__fencetor').attr('translation','0 205 30');
$('#w0__fencekosz').attr('translation','0 205 70');
}
} else {
pmenu('hide');
}
}
//koszyk
function wypelnijkoszyk(){
aktywny = '';
$ilosc = 0,
$dane = "",
idprodukt="";
var wkolor = localStorage.getItem('lskolor');
var vplotu = koloryplotu[wkolor];
var vslupa = vplotu;
//Rhombuszaun DIY
if(vslupa == '-LD') vslupa = '-L';
if(slupdrewno == 0) vslupa = kolorslupa == anthrazit ? "-A":"-S";
if (typeof onecolor === 'undefined') {
// variable is undefined
} else if(onecolor == 1) vplotu = '';
ploty = {};
$('.model').each(function() {
var idprodukt = $(this).attr('data-p');
if(idprodukt == 'z-90x180T2') idprodukt = 'z-90x180T';
else if(idprodukt == 'zm-90x180T2') idprodukt = 'zm-90x180T';
else if(idprodukt == 'z-90x160T2') idprodukt = 'z-90x160T';
else if(idprodukt == 'zm-90x160T2') idprodukt = 'zm-90x160T';
else if(idprodukt == 'z-90x180T-F2') idprodukt = 'z-90x180T-F';
else if(idprodukt == 'z-90x180T-L2') idprodukt = 'z-90x180T-L';
else if(idprodukt == 'z-180x180R') idprodukt = 'z-180x180';
else if(idprodukt == 'z-120x180R') idprodukt = 'z-120x180';
else if(idprodukt == 'z-60x180R') idprodukt = 'z-60x180';
if(ploty[idprodukt]>0) ploty[idprodukt]+=1;
else ploty[idprodukt]=1;
});
cenowo = cennik;
let holzAaluZaunhalter = 0;
//ploty
for( var i in ploty ){
$ilosc = ploty[i];
i = i + vplotu;
if((i in cenowo) && i!=='plano'){
$dane += i+":"+String($ilosc)+",";
holzAaluZaunhalter += $ilosc;
}
}
//slupy i kotwy i holz-alu-zaunhalter
var slup90 = $('.slup-90').length;
if(slup90>0){
let i ;
$ilosc = slup90;
if(slupdrewno == 1) i = "s-90"+vslupa;
else{
if(typslupa == "s-190") i = "s-100"+vslupa;
else if(typslupa == "s-235") i = "s-150"+vslupa;
else i = "s-190"+vslupa;
}
if(i in cenowo) $dane += i+":"+String($ilosc)+",";
}
var key = 'slup-180:not(.hasgate)';
if(slupdrewno == 1) key = 'slup-180';
$ilosc = $('.'+key).length;
if($ilosc>0){
let i = typslupa+vslupa;
if(i in cenowo) $dane += i+":"+String($ilosc)+",";
}
if(typslupa == "s-190" && slupdrewno == 0) { //kotwy i pokrywa slupa
$ilosc = $ilosc + slup90;
if($ilosc>0) {
i = "kotwa";
if(i in cenowo) $dane += i+":"+String($ilosc)+",";
if($('#pokrywa').prop('checked')){
i = "pokrywa"+vslupa;
$dane += i+":"+String($ilosc)+",";
}
}
}
//TOR slupy i kotwy, pokrywy
var key = '.slup.hasgate';
$ilosc = $(key).length;
if($ilosc>0){
$ilosc = $ilosc/2;
if(slupdrewno == 0){
let i = "s-190T"+vslupa;
if(typslupa == "s-295") i = "s-235T"+vslupa;
$dane += i+":"+String($ilosc)+",";
if(typslupa == "s-190") { //pokrywa furtki
if($('#pokrywa').prop('checked')){
i = "pokrywa"+vslupa+"-tor";
$dane += i+":"+String($ilosc)+",";
}
} } // /alu
holzAaluZaunhalter -= $ilosc;
}
//holz-alu-zaunhalter
if((slupdrewno == 0) && (holzAaluZaunhalter > 0)){
let i = 'holz-alu-zaunhalter';
if(i in cenowo) $dane += i+":"+String(holzAaluZaunhalter)+",";
} else if(holzAaluZaunhalter > 0){
let i = 'holz-ocynk-zaunhalter';
if(vslupa == "-L" || vslupa == "-Lo") i = 'holz-stal-zaunhalter';
if(i in cenowo) $dane += i+":"+String(holzAaluZaunhalter)+",";
}
//sturmanker
i = 'sturmanker';
if(i in ploty){
$ilosc = ploty[i];
if(stukolor==anthrazit) vslupa = "-A"
else vslupa = "-S";
i = i + vslupa;
if(i in cenowo){
$dane += i+":"+String($ilosc)+",";
}
}
//plano
i = 'plano';
if(i in ploty){
$ilosc = ploty[i];
if(i in cenowo) $dane += i+":"+String($ilosc)+",";
}
$dane = $dane.replace(/\,$/, "");
przygotujKoszyk($dane);
}//koszyk
//Grubosc slupa
$(document).on("click", ".gruboscslupa.dodatek.act", function(){
$('.gruboscslupa').removeClass('ba');
$(this).addClass('ba');
if(gruboscslupa != $(this).attr("data-gr")) {
gruboscslupa = $(this).attr("data-gr");
if(gruboscslupa == '9'){
$('#planobox').show();
$('.betony').attr('translation','0 -5 0');
$('.sturmankerpoz').attr('translation','0 -5 0');
slupdrewno = 1;
let lskolor = localStorage.getItem('lskolor');
if(lskolor == 'diylarche') lskolor = 'larche'; //DIY
var pozPlotu = '4.5';
$('.ksztaltslupa IndexedFaceSet').remove();
$('.ksztaltslupa').append('');
$('#start-slup').removeClass('gr7').addClass('gr9');
console.log('cc-'+wczytywanie)
if(!wczytywanie){
kolorslupa = silber;
}
$('.kapturek').attr('render','false');
$('.alukolor').hide();
$('.kotwa').attr('render','false');
typslupa = 's-190';
$("#start-slup").attr('data-typ',typslupa);
$('.skalaslupa').attr('scale','1 1 1');
$('.skalaslupa').attr('translation','0 0 0');
$('.clipper').attr('plane','0 0 1 -0.85');
$("#w0__betonX").attr('translation','0 0 -29.9');
$("#w0__betonX").find('box').attr('size','40 40 60');
$('.sluptexture').each(function() {
$(this).attr('url',$(this).attr('url').replace(/-[a-z]*\.jpg/,'-'+lskolor+'.jpg'));
});
narozniki();
} else {
$('#planobox').hide();
if($('scene .model[data-p="plano"]').length > 0){
$('scene .model[data-p="plano"]').each(function() {
aktywny = $(this).attr('id');
usunPlot();
});
}
$('.betony').attr('translation','0 0 0');
$('.sturmankerpoz').attr('translation','0 0 0');
slupdrewno = 0;
$('.h-anker').attr('render','false');
$('.l-anker').attr('render','false');
var pozPlotu = '3.5';
//$('.kapturek').attr('scale','1 1 1');
$('.kapturek').attr('render','true');
$('.ksztaltslupa IndexedFaceSet').remove();
$('.ksztaltslupa').append('');
$('#start-slup').removeClass('gr9').addClass('gr7');
$('.alukolor').show();
if(cennik['s-190-S'] || cennik['s-235-S'] || cennik['s-295-S']) $('.farbaslupa.dodatek.silber').click();
else $('.farbaslupa.dodatek.anthrazit').click();
if(cennik['s-190-S'] || cennik['s-190-A']){
$('.kotwa').attr('render','true');
$('.typslupa.s-190').click();
} else {
$('.typslupa.s-235').click();
}
$('.sluptexture').each(function() {
$(this).attr('url',$(this).attr('url').replace(/-[a-z]*\.jpg/,'-aluminium.jpg'));
});
}
$('.model').each(function() {
$(this).attr('translation','0 0 '+pozPlotu);
var dataw = parseInt($(this).attr('data-w'));
if(dataw == 0) { //jest sciana
if($(this).parent().hasClass('r_strona')){
var daneslupa = $(this).parent().parent().attr('translation');
var pm = daneslupa.split(' ');
var przesunplot = Number(pm[2]) - parseInt(gruboscslupa) + 3;
$(this).parent().parent().attr('translation','0 0 '+przesunplot);
} else {
var przesunplot = gruboscslupa == '9' ? '-6' : '-4';
$(this).parent().parent().children('.r_strona').attr('translation','0 0 '+przesunplot);
}
} else {
var odlSlupa = dataw + parseInt(gruboscslupa);
$('#'+$(this).attr('id')+'-slup').attr('translation','0 0 '+odlSlupa);
}
});
if(nazwaplotu == "valentina"){
korektaSlupa();
}
if(!wczytywanie) rysujTrawnik();
}
zapiszLS();
});//zmiana grubosci
// korekta slupow
function korektaSlupa(){
$('.slup:not(.kula)').each(function(){
let obiekt = $('#'+$(this).attr('id'));
podmienSlup2(obiekt);
});
}
//kolor stumarker
$(document).on("click", ".stukolor.dodatek.act", function(){ //ZMIANA KOLORU STUMANKER
$('.stukolor').removeClass('ba');
$(this).addClass('ba');
let kolor = $(this).attr("data-kolor");
stukolor = kolor == 'anthrazit'?anthrazit:silber;
$('.stukolor').find('Material').attr('diffuseColor',stukolor);
zapiszLS();
});
//STURMANKERS
$(document).on("click",".sturmankers",function(){
let $opcja = $(this).attr('data-o');
let produkt = $(this).attr('data-p');
$('.model').each(function() {
if($(this).attr('data-p')=='sturmanker' || $(this).attr('data-p')=='plano'){
aktywny = $(this).attr('id');
usunPlot();
}
});
if($opcja == 'off'){
//usuwanie
}
else
$('.slup:not(.kula)').each(function() {
if($(this).attr('data-hb') == '0' && $(this).attr('data-hf') == '0' ){
aktywny = $(this).attr('id');
let pole = $('#'+aktywny);
let kula = pole.toArray();
let mat = kula[0]._x3domNode.getCurrentTransform();
let x = mat['_03'].toFixed(0);
let y = mat['_23'].toFixed(0);
if(x<=0 && y>0){
kierunek = $opcja == 'f' ? 'b':'f';
} else kierunek = $opcja;
dodajPlot3(produkt,'30','30','30');
$('#toaststurmanker').modal('show');
$('.stukolor').find('Material').attr('diffuseColor',stukolor);
}
});
});
function ustalStu(){
if($('scene .model[data-w="30"]').length > 0) {
$('#stuoff').prop('checked',false);
if($('scene .model[data-p="plano"]').length == 0){
$('#planofront').prop('checked',false);$('#planoback').prop('checked',false);
} else {$('#stufront').prop('checked',false);$('#stuback').prop('checked',false);}
}
else {$('#stuoff').prop('checked',true); }
}
function statusy(){
if(nazwaplotu=='anjo') {
var cutCollapsible = document.getElementById('collapseCut');
cutCollapsible.addEventListener('show.bs.collapse', function () {
cutter();
});
}
var cutCollapsible = document.getElementById('collapseSturmanker');
cutCollapsible.addEventListener('shown.bs.collapse', function () {
ustalStu();
if($(window).width() <= mobilev) $('.dopasuj').scrollTop(260);
});
}
function przesunSlider(val){
var rangeSlider = document.getElementById('slider-range');
let dlslider = Math.round(rangeSlider.noUiSlider.get())+val;
rangeSlider.noUiSlider.set(dlslider);
}
$(document).on("click",".ilerazy.splus",function (event) {
przesunSlider(1);
});
$(document).on("click",".ilerazy.sminus", function (event) {
przesunSlider(-1);
});
function cutter(){
var rangeSlider = document.getElementById('slider-range');
let dlplot = 180;
dlplot = parseInt($('#'+aktywny).attr('data-w'));
let aktywnyid = $('#'+aktywny).attr('data-p');
if(!$('#slider-range').hasClass('noUi-target')){
noUiSlider.create(rangeSlider, {
start: 180,
connect: 'lower',
tooltips: [wNumb({
decimals: 0,
suffix: ' cm'
})],
range: {
'min': 21,
'max': 180
},
pips: { mode: 'range', density: 1}
});
}
if(aktywnyid == 'z-180x180'){
rangeSlider.noUiSlider.updateOptions({
start:dlplot,
padding: [10, 0],
range: {
'min': 0,
'50%': 90,
'max': 180
}
});
}
}//cutter
$(document).on("click",".cutok",function(){
var rangeSlider = document.getElementById('slider-range');
let dlslider = Math.round(rangeSlider.noUiSlider.get());
let odlslup = dlslider+parseInt(gruboscslupa);
let dlplot = dlslider;
let aktywnyid = $('#'+aktywny).attr('data-p');
let clipp = 0;
if(aktywnyid == 'z-180x180'){
clipp = 0.5+((dlslider-90)*100)/100;
}
var slup = $('#'+aktywny+"-slup");
slup.attr('translation','0 0 '+odlslup);
$('#'+aktywny).attr('data-w',dlplot);
$('#w0__fencekosz').attr('translation','0 205 '+dlplot/2);
$('#'+aktywny).find('.clipperh').attr('plane','0 -1 0 '+clipp).attr('on','true')
console.log(clipp);
zapiszLS();
rysujTrawnik();
})
//GATE
function Gate(){
if (typeof hasTore === 'undefined') return;
let jestpokrywa = $('#pokrywa').prop('checked');
$('#w0__Scena .hasgate').children('.kotwa').empty().append('');
$('#w0__Scena .hasgate').children('.betony').empty().append('');
$('#w0__Scena .hasgate').removeClass('hasgate');
$('.model').each(function() {
let idprodukt = $(this).attr('data-p');
if(idprodukt == 'z-100x180' || idprodukt == 'z-100x160') {
let slupid = '#'+$(this).attr('id')+"-slup";
let rodzicSlup = $(this).closest('.slup');
$(slupid).addClass('hasgate');
rodzicSlup.addClass('hasgate');
if($(slupid).attr('data-hf') == '30'){
$(slupid).children('.f_strona').empty();
$(slupid).attr('data-hf','0');
$(slupid).children('.betony').attr('render','true');
} else if($(slupid).attr('data-hb') == '30'){
$(slupid).children('.b_strona').empty();
$(slupid).attr('data-hb','0');
$(slupid).children('.betony').attr('render','true');
}
if(rodzicSlup.attr('data-hf') == '30'){
rodzicSlup.children('.f_strona').empty();
rodzicSlup.attr('data-hf','0');
rodzicSlup.children('.betony').attr('render','true');
} else if(rodzicSlup.attr('data-hb') == '30'){
rodzicSlup.children('.b_strona').empty();
rodzicSlup.attr('data-hb','0');
rodzicSlup.children('.betony').attr('render','true');
}
let str1 = '';
let str2 = '';
$(slupid).children('.kotwa').addClass('gate').empty().append(str1);
rodzicSlup.children('.kotwa').addClass('gate').empty().append(str2);
if(typslupa == 's-295'){
$(slupid).children('.betony').empty().append('');
rodzicSlup.children('.betony').empty().append('');
$(slupid).children('.slupbody').find('.clipper').attr('on','true');
rodzicSlup.children('.slupbody').find('.clipper').attr('on','true');
$(slupid).children('.slupbody').find('.clipper').attr('plane','0 0 1 0.45');
rodzicSlup.children('.slupbody').find('.clipper').attr('plane','0 0 1 0.45');
} else {
$(slupid).children('.slupbody').find('.clipper').attr('on','false');
rodzicSlup.children('.slupbody').find('.clipper').attr('on','false');
}
}
});
}
//typ slupa
$(document).on("click", ".typslupa.dodatek.act", function(){
$('.typslupa').removeClass('ba');
$(this).addClass('ba');
typslupa = $(this).attr("data-typ");
$("#start-slup").attr('data-typ',typslupa);
if(typslupa == 's-190') {$('.panelpokrywa').show();}
else $('.panelpokrywa').hide();
if(typslupa == "s-295"){
$('.skalaslupa').attr('scale','1 1 1.553');
$('.skalaslupa').attr('translation','0 0 -1.05');
$('.kotwa').attr('render','false');
$("#w0__betonX").attr('translation','0 0 -52.4');
$("#w0__betonX").find('box').attr('size','40 40 105');
$('.slup:not(.hasgate)').children('.slupbody').find('.clipper').attr('plane','0 0 1 0.20');
} else {
$('.slup.hasgate').children('.slupbody').find('.clipper').attr('on','false');
if(typslupa == "s-235") {
$('.skalaslupa').attr('scale','1 1 1.237');
$('.skalaslupa').attr('translation','0 0 -0.45');
$('.kotwa').attr('render','false');
$('.clipper').attr('plane','0 0 1 -0.40');
} else {
$('.skalaslupa').attr('scale','1 1 1');
$('.skalaslupa').attr('translation','0 0 0');
$('.kotwa').attr('render','true');
$('.clipper').attr('plane','0 0 1 -0.85');
dodajPokrywe();
}
$("#w0__betonX").attr('translation','0 0 -29.9');
$("#w0__betonX").find('box').attr('size','40 40 60');
}
if(nazwaplotu == "valentina"){
korektaSlupa();
}
Gate();
rysujTrawnik();
zapiszLS();
}); // /typ slupa
//podmien slup
podmienSlup2 = function(obiekt) {
let wysslupa = Math.max(0,obiekt.attr('data-hr'),obiekt.attr('data-hl'),obiekt.attr('data-hb'),obiekt.attr('data-hf'));
if(wysslupa == '0') wysslupa='180';
let slupbody = obiekt.children('.slupbody');
let strzalki = obiekt.children('.strzalki');
if(wysslupa == '180'){
slupbody.find('.clipper').attr('on','false');
slupbody.attr('translation','0 0 0');
obiekt.removeClass('slup-90').addClass('slup-180');
strzalki.find('.arrow.r').attr('translation','0 50 0');
strzalki.find('.arrow.b').attr('translation','0 120 0');
} else if(wysslupa == '90'){
if(typslupa == 's-190') slupbody.find('.clipper').attr('plane','0 0 1 -0.85');
else if(typslupa == 's-235') slupbody.find('.clipper').attr('plane','0 0 1 -0.40');
else if(typslupa == 's-295') slupbody.find('.clipper').attr('plane','0 0 1 0.20');
slupbody.attr('translation','0 -85 0');
obiekt.removeClass('slup-180').addClass('slup-90');
strzalki.find('.arrow.r').attr('translation','0 20 0');
strzalki.find('.arrow.b').attr('translation','0 30 0');
slupbody.find('.clipper').attr('on','true');
} else if(wysslupa == '120'){
if(typslupa == 's-190') slupbody.find('.clipper').attr('plane','0 0 1 -0.60');
else if(typslupa == 's-235') slupbody.find('.clipper').attr('plane','0 0 1 -0.20');
else if(typslupa == 's-295') slupbody.find('.clipper').attr('plane','0 0 1 0.4');
slupbody.find('.clipper').attr('on','true');
slupbody.attr('translation','0 -60 0');
obiekt.removeClass('slup-90').addClass('slup-180');
strzalki.find('.arrow.r').attr('translation','0 20 0');
strzalki.find('.arrow.b').attr('translation','0 30 0');
} else if(wysslupa == '60'){
if(typslupa == 's-190') slupbody.find('.clipper').attr('plane','0 0 1 -1.20');
else if(typslupa == 's-235') slupbody.find('.clipper').attr('plane','0 0 1 -0.8');
else if(typslupa == 's-295') slupbody.find('.clipper').attr('plane','0 0 1 -0.2');
slupbody.find('.clipper').attr('on','true');
slupbody.attr('translation','0 -120 0');
obiekt.removeClass('slup-180').addClass('slup-90');
strzalki.find('.arrow.r').attr('translation','0 0 0');
strzalki.find('.arrow.b').attr('translation','0 10 0');
}
} // /podmien slup
//pokrywa kotwy slupa
$(document).on("click", "#pokrywa", function(){
if($(this).prop('checked')) dodajPokrywe();
else usunPokrywe();
zapiszLS();
});
const dodajPokrywe = () => {
if(typslupa !== 's-190') return;
let lkslupa = kolorslupa == anthrazit ? "-A":"-S";
let aktywny = (('pokrywa'+lkslupa) in cennik) ? true : false;
if(aktywny) {$('.pokrywa-kotwy').attr('render','true');$('#pokrywa').prop('disabled',false);$('#pokrywa').prop('checked',true);}
else {$('.pokrywa-kotwy').attr('render','false');$('#pokrywa').prop('checked',false);$('#pokrywa').prop('disabled',true);}
}
const usunPokrywe = () => {
if(typslupa !== 's-190') return;
$('.pokrywa-kotwy').attr('render','false');
}
function usunPlot(){
var kplot = $('#'+aktywny).attr('data-k');
var rodzicSlup = $('#'+aktywny).closest('.slup');
var zprzodu = $('#'+aktywny+'-slup').children('.r_strona').children().length;
if(kplot!="r" && zprzodu == 2){ //usun i przesun boczne
var tmp = $('#'+aktywny+'-slup').children('.r_strona').children();
tmp.eq(0).attr('data-k',kplot);
let wys = $('#'+aktywny+'-slup').attr('data-hr');
rodzicSlup.attr('data-h'+kplot,wys);
$('#'+aktywny).parent().empty().append(tmp);
} else { //else 1
if(kplot=="r"){
let shf = $('#'+aktywny+'-slup').attr('data-hf'); //sprawdz front
if((shf=='180' || shf=='90' || shf=='160' || shf=='120' || shf=='150' || shf=='60') && rodzicSlup.attr('data-hf')=='0'){
var tmp = $('#'+aktywny+'-slup').children('.f_strona').children();
rodzicSlup.attr('data-hf',shf);
rodzicSlup.children('.f_strona').append(tmp);
}//front
let shb = $('#'+aktywny+'-slup').attr('data-hb'); //sprawdz tył
if((shb=='180' || shb=='90' || shb=='160' || shb=='120' || shb=='150' || shf=='60') && rodzicSlup.attr('data-hb')=='0'){
var tmp = $('#'+aktywny+'-slup').children('.b_strona').children();
rodzicSlup.attr('data-hb',shb);
rodzicSlup.children('.b_strona').append(tmp);
}//tyl
}
if(zprzodu == 2) {
var tmp = $('#'+aktywny+'-slup').children('.r_strona').children();
let wys = $('#'+aktywny+'-slup').attr('data-hr');
tmp.eq(0).attr('data-k',kplot);
rodzicSlup.attr('data-h'+kplot,wys);
$('#'+aktywny).parent().empty().append(tmp);
}
else {
rodzicSlup.attr('data-h'+kplot,'0');
rodzicSlup.children('.betony').attr('render','true');
$('#'+aktywny).parent().empty();
}
}// /else 1
//sprawdz slup rodzic
podmienSlup2(rodzicSlup);
$(this).removeClass('ba');
Gate();
rysujTrawnik();
odznacz();
if(slupdrewno == 1) narozniki();
zapiszLS();
if(!$('body').hasClass('stepbystep')) fitView();
pmenu('hide');
}// /usun plot
$(document).on("click",".kosz", function(){usunPlot()});
//kolor slupow
$(document).on("click", ".farbaslupa.dodatek.act", function(){ //ZMIANA KOLORU SLUPA ALU
$('.farbaslupa').removeClass('ba');
$(this).addClass('ba');
let slupkolor = $(this).attr("data-kolor");
let textura = "maps/k-acpanthrazit.jpg";
if(slupkolor=='silber') {textura = "maps/k-aluminium.jpg"; $('#start-slup').addClass('slupsilber');kolorslupa = silber;}
else {$('#start-slup').removeClass('slupsilber');kolorslupa = anthrazit;}
$('.sluptexture').attr('url',textura);
dodajPokrywe();
ustalStu();
zapiszLS();
});
//OPCJE
//Pfosten Montage
function opcjeSposobMontazu(){
let acbuttons = '';
return acbuttons;
}//Funkcje
//zapiszLS
function zapiszLS(){
if(wczytywanie) return;
if($('#w0__Scena').children().length > 0){
var pamiec = $('').append($('#w0__Scena').eq(0).clone()).html();
localStorage.setItem("pamiec", pamiec);
localStorage.setItem("licznik", licznik);
}
}
//uruchom konfiguracje
function uruchomKonfiguracje(){
aktywny = "plot-Qr-1-slup";
kierunek="r";
if(nazwaplotu == "easy-boards") $('#z-180x180 button.plot.dodatek').click();
else $('.'+startzaun+'.plot.dodatek.act').click();
}
function wskaz(event){
if($('body').hasClass('stepbystep')) return;
if(obroty) return;
if(nazwaplotu == "easy-fence" || nazwaplotu == "gardo" || nazwaplotu == "anjo" || nazwaplotu == "fabo" || nazwaplotu == "easy-rom" || nazwaplotu == "easy-boards"){
$('.cutcontainer').hide();
$('.cut').hide();
}
var id = $(event.target).closest('.model').attr('id');
zaznaczPlot(id);
event.stopPropagation();
}// /wskazPlot
String.prototype.compress = function (asArray) {
"use strict";
// Build the dictionary.
asArray = (asArray === true);
var i,
dictionary = {},
uncompressed = this,
c,
wc,
w = "",
result = [],
ASCII = '',
dictSize = 256;
for (i = 0; i < 256; i += 1) {
dictionary[String.fromCharCode(i)] = i;
}
for (i = 0; i < uncompressed.length; i += 1) {
c = uncompressed.charAt(i);
wc = w + c;
//Do not use dictionary[wc] because javascript arrays
//will return values for array['pop'], array['push'] etc
// if (dictionary[wc]) {
if (dictionary.hasOwnProperty(wc)) {
w = wc;
} else {
result.push(dictionary[w]);
ASCII += String.fromCharCode(dictionary[w]);
// Add wc to the dictionary.
dictionary[wc] = dictSize++;
w = String(c);
}
}
// Output the code for w.
if (w !== "") {
result.push(dictionary[w]);
ASCII += String.fromCharCode(dictionary[w]);
}
return asArray ? result : ASCII;
};
String.prototype.decompress = function () {
"use strict";
// Build the dictionary.
var i, tmp = [],
dictionary = [],
compressed = this,
w,
result,
k,
entry = "",
dictSize = 256;
for (i = 0; i < 256; i += 1) {
dictionary[i] = String.fromCharCode(i);
}
if(compressed && typeof compressed === 'string') {
// convert string into Array.
for(i = 0; i < compressed.length; i += 1) {
tmp.push(compressed[i].charCodeAt(0));
}
compressed = tmp;
tmp = null;
}
w = String.fromCharCode(compressed[0]);
result = w;
for (i = 1; i < compressed.length; i += 1) {
k = compressed[i];
if (dictionary[k]) {
entry = dictionary[k];
} else {
if (k === dictSize) {
entry = w + w.charAt(0);
} else {
return null;
}
}
result += entry;
// Add w+entry[0] to the dictionary.
dictionary[dictSize++] = w + entry.charAt(0);
w = entry;
}
return result;
};
function lzw64_encode(s) {
if (!s) return s;
var b64="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_";
var d=new Map();
var s=(encodeURIComponent(s)).split("");
var word=s[0];
var num=256;
var key;
var o=[];
function out(word,num) {
key=word.length>1 ? d.get(word) : word.charCodeAt(0);
o.push(b64[key&0x3f]);
o.push(b64[(key>>6)&0x3f]);
o.push(b64[(key>>12)&0x3f]);
}
for (var i=1; i
')
var lspamiec = localStorage.getItem("pamiec");
if (lspamiec !== null) {
var url = "../services/zapisz-shr.php",
tmplicznik = licznik,
lskolor=localStorage.getItem('lskolor');
//let kod = lspamiec.compress();
let kod = lzw64_encode(lspamiec);
var posting = $.post( url, {data1:kod, data2:tmplicznik, data3:lskolor, data4:nazwaplotu });
posting.done(function( data ){
$('#sharelink').val(document.location.protocol+"//"+host+"/3d/"+lang+"/"+nazwaplotu+","+data);
$('.sharepanel p.loading').remove();
$('.sharepanel .form-wrap').show();
});
}
}
function wczytajShr(secret){
var url = "../services/wczytaj-shr.php", $pid = secret;
var posting = $.post( url, {data1:$pid});
posting.done(function(data){
if(data!="brak"){
if(data.length > 100) {
var tmp = JSON.parse(data);
var lspamiec = decodeURIComponent(tmp["lspamiec"]);
let kod = lspamiec.decompress();
let checkcompress = kod.substring(0,3);
if(checkcompress!="');
$("#sharebut").click(function(){
var copyText = document.getElementById("sharelink");
copyText.select();
copyText.setSelectionRange(0, 99999)
document.execCommand("copy");
$('#sharecopied').show();
});
function fitView(){
let obiekt = $('#start-slup')[0];
//document.getElementById('x3dElement').runtime.fitObject(obiekt);
setTimeout(function(){ document.getElementById('x3dElement').runtime.fitObject(obiekt); },500);
}
function eyePlus(){
let obiekt = $('#'+aktywny)[0];
if(aktywny.indexOf('-slup') > 0 ) obiekt = shapeslup;
document.getElementById('x3dElement').runtime.fitObject(obiekt);
}
$(document).on("click", ".eyeplus", function(){eyePlus()});
$(document).on("click", ".eyeminus", function(){fitView()});
var timeout;
function x3domOnClickNavTool(e)
{
if (e.target.className.indexOf('cnt-') === 0) {
e.stopPropagation();
x3domNavigateByButtons(e.target.className.replace('cnt-', ''));
}
}
$(".rotary").bind('mousedown touchstart', function(event){
var rotary = $(this).attr('data-rot');
clearInterval(timeout);
timeout = setInterval(function(){
x3domNavigateByButtons(rotary);
event.preventDefault();
}, 100);
})
const x3domButtonNavStep = 1 / 72;
function x3domNavigateByButtons(move)
{
obroty = true;
var rect, e, sx, sy, dx, dy;
x3domContainer = document.getElementById('x3dElement');
var x3dCanvas = x3domContainer.getElementsByTagName('CANVAS')[0];
rect = x3domContainer.getBoundingClientRect();
e = {
clientX: Math.round((rect.left + rect.right) * 0.5),
clientY: Math.round((rect.top + rect.bottom) * 0.5),
altKey: false,
ctrlKey: false,
metaKey: false,
shiftKey: false,
button: 0,
buttons: 1
};
sx = Math.round(x3domButtonNavStep * (rect.right - rect.left));
sy = Math.round(x3domButtonNavStep * (rect.bottom - rect.top));
dx = 0;
dy = 0;
switch(move) {
case 'rotD': dy = sy; break;
case 'rotU': dy = -sy; break;
case 'rotR': dx = sx; break;
case 'rotL': dx = -sx; break;
case 'panD': e.ctrlKey = true; dy = sy; break;
case 'panU': e.ctrlKey = true; dy = -sy; break;
case 'panR': e.ctrlKey = true; dx = sx; break;
case 'panL': e.ctrlKey = true; dx = -sx; break;
case 'zoomO': e.altKey = true; dx = sx; break;
case 'zoomI': e.altKey = true; dx = -sx; break;
case 'show': fitView(); obroty = false; return;
case 'orig': x3dElement.runtime.resetView(); return;
default: return;
}
e.clientX -= dx;
e.clientY -= dy;
x3dCanvas.dispatchEvent(new MouseEvent('mousedown', e));
x3dCanvas.dispatchEvent(new MouseEvent('mousemove', e));
e.clientX += dx;
e.clientY += dy;
x3dCanvas.dispatchEvent(new MouseEvent('mousemove', e));
e.buttons = 0;
x3dCanvas.dispatchEvent(new MouseEvent('mouseup', e));
obroty = false;
}
$(document).bind('mouseup touchend mouseout keyup',function(){
clearInterval(timeout);
//return false;
});
document.addEventListener('keydown', x3domOnKeyUp, true);
function x3domOnKeyUp(e)
{
if(document.activeElement.type=='radio') return;
switch (e.key) {
case 'ArrowUp':
if (e.shiftKey)
x3domNavigateByButtons('panU')
else if (e.altKey)
x3domNavigateByButtons('zoomI')
else
x3domNavigateByButtons('rotU')
break;
case 'ArrowDown':
if (e.shiftKey)
x3domNavigateByButtons('panD')
else if (e.altKey)
x3domNavigateByButtons('zoomO')
else
x3domNavigateByButtons('rotD')
break;
case 'ArrowLeft':
if (e.shiftKey)
x3domNavigateByButtons('panL')
else
x3domNavigateByButtons('rotL')
break;
case 'ArrowRight':
if (e.shiftKey)
x3domNavigateByButtons('panR')
else
x3domNavigateByButtons('rotR')
break;
case 'Delete':
if($(".plot.dodatek.act.ba").length == 1 && (aktywny !== 'plot-Qr-1')) usunPlot();
break;
}
}
$(document).on("click",".kosz", function(){$(".plot.dodatek.act.ba").click();})
function perspektywa(){
$("#faza").attr('set_bind','true');
document.getElementById('x3dElement').runtime.resetView();
fitView();
document.getElementById('x3dElement').runtime.resetView();
setTimeout(function(){ fitView(); },1000);
}
function helpanimation(){
$(".ibutton.uruchom").addClass('ani');
setTimeout(function(){
$(".ibutton.uruchom").removeClass('ani');
},8000);
}
$(".passicon").click(function() {
$(this).toggleClass("off");
var input = $(this).closest('form').find("input[name='user_pass']");
if (input.attr("type") == "password") {
input.attr("type", "text");
} else {
input.attr("type", "password");
}
});
function imgPDF(){
var imgUrl = document.getElementById("x3dElement").runtime.getScreenshot();
var sim = new Image; sim.src = imgUrl;
var canvas = document.createElement('canvas');
canvas.id = "zrzut";
canvas.width = window.innerWidth;
canvas.height = window.innerHeight;
var ctx = canvas.getContext("2d");
sim.onload = function(){
var ratio = sim.width / sim.height ;
var cw = 500*ratio;
canvas.width=cw;
canvas.height=500;
ctx.drawImage(sim,0,0,sim.width,sim.height,0,0,cw,500);
var img = canvas.toDataURL("image/png");
//document.write('');
let nimg = img.replace('data:image/png;base64,','');
$("iframe#okno-koszyk").contents().find('#zauncapture').val(nimg);
console.log('fotodone');
zaunlinkshare();
//$("iframe#okno-koszyk").contents().find('body').html('');
}
}//img pdf
function zaunlinkshare(){
var lspamiec = localStorage.getItem("pamiec");
if (lspamiec !== null) {
var url = "../services/zapisz-shr.php",
tmplicznik = licznik,
lskolor=localStorage.getItem('lskolor');
let kod = lzw64_encode(lspamiec);
try {
myVal = encodeURIComponent(kod);
} catch (err) {
kod = lspamiec;
}
var posting = $.post( url, {data1:kod, data2:tmplicznik, data3:lskolor, data4:nazwaplotu });
posting.done(function( data ){
let zaunlink = document.location.protocol+"//"+host+"/3d/"+lang+"/"+nazwaplotu+","+data;
$("iframe#okno-koszyk").contents().find('#zaunlink').val(zaunlink);
$("iframe#okno-koszyk").contents().find("#domapy").submit();
});
}
}
function linkshare(){
$("iframe#okno-koszyk").contents().find(".tytul").append('');
$("iframe#okno-koszyk").contents().find("#domapy").hide();
imgPDF();
}
//menu OPCJE
$(".farby").click(function(){
odznacz();
showSlupClick();
$("#pasekboczny").addClass('fit');
pokazpasek();
pmenu('hide');
$('.mainmenu .btn').removeClass('active');
$(this).addClass('active');
});
$(".koszyk").click(function(){
odznacz();
wypelnijkoszyk();
pmenu('hide');
});
$(".user").click(function(){
pmenu('hide');
$('.tab').hide();
$(".upanel").show();
pokazpasek();
$('.mainmenu .btn').removeClass('active');
$(this).addClass('active');
});
var sendenmail = "";
$(document).on("click",".share",function(){
pmenu('hide');
sendenmail = "";
$('.buttonshr').show();
$('.tab').hide();
$( ".komunikat" ).empty().hide();
zapiszShr();
$(".sharepanel").show();
pokazpasek();
$('.mainmenu .btn').removeClass('active');
$(this).addClass('active');
});
$(document).on("click",".buttonshr",function(){
$(this).hide();
sendenmail = $('.mailshr').val();
});
$(document).on("input",".mailshr",function(){
if(sendenmail == $('.mailshr').val()) $('.buttonshr').hide();
else $('.buttonshr').show();
$(".komunikat").empty().hide();
});
//nowywymiar
function nowywymiar(){
$('.newdim').remove();
// return; //forprint
var Okula = $('.model[data-p!="sturmanker"][data-p!="plano"][data-p!="ledcolor"][data-p!="ledwhite"][data-p!="easywpc-mur-190"]');
var kula = Okula.toArray();
var modl=parseInt(gruboscslupa);
if(nazwaplotu=='easy-fence' || nazwaplotu=='easy-boards' || nazwaplotu=='easy-rom'){
if($('#start-slup').children('.l_strona').children().length == 1) modl = modl - 4;
}
for(var i in kula){
// var mat = kula[i]._x3domNode.getCurrentTransform();
var odl = parseInt(kula[i].getAttribute('data-w'));
var slup = $('#'+kula[i].id+'-slup');
if(nazwaplotu=='bondo-wpc') odl = odl + 2;
else if(nazwaplotu=='carys-wpc') odl = odl + 2;
else if(nazwaplotu=='fabo') odl = odl + 1;
else if(nazwaplotu=='easy-fence' || nazwaplotu=='easy-boards' || nazwaplotu=='easy-rom'){
if($('#'+kula[i].id).hasClass('uchwytl')) odl = odl + 3;
if($('#'+kula[i].id).hasClass('uchwytr')) odl = odl + 3;
}
modl = modl + odl+parseInt(gruboscslupa);
if(slup.attr('data-hr') < 80 || (slup.attr('data-hf') > 80) || (slup.attr('data-hb') > 80)){
if(modl > 0){
let rotation = "1 0 0 -1.571";
let ndimx = -18;
let ndimz = 0-modl/2;
if(nazwaplotu=='easy-fence' || nazwaplotu=='easy-boards' || nazwaplotu=='easy-rom'){
if(slup.children('.r_strona').children().length == 1){
let sciana = slup.children('.r_strona').find('.model').attr('data-p');
if(sciana.indexOf('mur')!=-1) {
modl = modl -4;
}
}}
let podmurek=''; let wymiarbialy = '0 0 1.5';
if (window.hasOwnProperty('jestmauer') && jestmauer != 'off') {
podmurek = `
`;
wymiarbialy = '0 -30 1.5';
}
$('#'+kula[i].id+'-slup').append(`
`+podmurek+``);
}
modl=parseInt(gruboscslupa);
}
}
}
//blokady
sprawdzBlokady = function(aktywny, strona, start){
var pole = $('#'+aktywny).children(strona);
var kula = pole.toArray();
var mat = kula[0]._x3domNode.getCurrentTransform();
var kz = mat['_00'].toFixed(0), kx=mat['_20'].toFixed(0);
pole = $('#'+aktywny);
kula = pole.toArray();
mat = kula[0]._x3domNode.getCurrentTransform();
console.log(mat['_03'].toFixed(0)+':'+mat['_23'].toFixed(0));
var x = parseInt(mat['_03'].toFixed(0)), z = parseInt(mat['_23'].toFixed(0));
var nastepny = '',dx=x+9;dz=z+9;
var wynik = -1;
var robo = '';
if(kz == 1) {
for (var j=9;j<190;j+=1){
dz = z+j;
nastepny = x+':'+dz;
if(zajete.indexOf(nastepny)!=-1){
console.log('stopz1'+j);
wynik = j;
robo = nastepny;
break;
}
nastepny = dx+':'+dz;
if(zajete.indexOf(nastepny)!=-1){
console.log('stopz2'+j);
wynik = j;
robo = nastepny;
break;
}
}
} else if(kz == -1) {
for (var j=9;j<190;j+=1){
dz = z-j;
nastepny = x+':'+dz;
if(zajete.indexOf(nastepny)!=-1){
console.log('stop'+j);
wynik = j;
robo = nastepny;
break;
}
nastepny = dx+':'+dz;
if(zajete.indexOf(nastepny)!=-1){
console.log('stop'+j);
wynik = j;
robo = nastepny;
break;
}
}
} else if(kx == 1) {
//dz = z - 9;
for (var j=9;j<190;j+=1){
dx = x-j;
nastepny = dx+':'+z;
if(zajete.indexOf(nastepny)!=-1){
console.log('stop'+j);
wynik = j;
robo = nastepny;
break;
}
nastepny = dx+':'+dz;
if(zajete.indexOf(nastepny)!=-1){
console.log('stop'+j);
wynik = j;
robo = nastepny;
break;
}
}
} else if(kx == -1) {
// dz = z - 9;
for (var j=9;j<190;j+=1){
dx = x+j;
nastepny = dx+':'+z;
if(zajete.indexOf(nastepny)!=-1){
console.log('stop'+j);
wynik = j;
robo = nastepny;
break;
}
nastepny = dx+':'+dz;
if(zajete.indexOf(nastepny)!=-1){
console.log('stop'+j);
wynik = j;
robo = nastepny;
break;
}
}
}
if(wynik>0){
wynik = wynik + start;
if(wynik<70) {
$('.plot.dodatek').removeClass('act');
} else if(wynik<100) {
$('.plot.dodatek').removeClass('act');
if ($('#'+aktywny).hasClass('slup-180')) {
$('.plot.dodatek[data-w="60"]').addClass('act');
}
} else if(wynik<130) {
$('.plot.dodatek[data-w="120"]').removeClass('act');
$('.plot.dodatek[data-w="180"]').removeClass('act');
} else if(wynik<190) {
$('.plot.dodatek[data-w="180"]').removeClass('act');
}
if(zajeteSlupy.indexOf(robo)!=-1) {
if(wynik == 69) { $('.plot.dodatek[data-w="60"]').addClass('act'); }
else if(wynik == 99) { $('.plot.dodatek[data-w="90"]').addClass('act'); }
else if(wynik == 129) { $('.plot.dodatek[data-w="120"]').addClass('act'); }
else if(wynik == 189) { $('.plot.dodatek[data-w="180"]').addClass('act'); }
stopSlup = wynik;
}
tmp = $('.plot.act');
}//wynik > 0
}
//start podaj dl plotu
function rysujilekontener(){
var startzaundl = 180;
if(nazwaplotu=='easy-fence' || nazwaplotu=='easy-boards' || nazwaplotu=='easy-rom') startzaundl = 177;
else if(nazwaplotu=='bondo-wpc') startzaundl = 182;
else if(nazwaplotu=='carys-wpc') startzaundl = 182;
$(document).on('click', '.ilerazy.plus' ,function (event) {
let dl = $('#ilerazy').val();
let dlugosc = parseInt($('#iledl').attr('data-i'));
dl++;
if(dl > 40) dl = 40;
else {
$('#ilerazy').val(dl);
dlugosc = dlugosc + startzaundl + parseInt(gruboscslupa);
$('#iledl').attr('data-i',dlugosc);
let res = (dlugosc/100).toString();
res = res.replace(".", ",");
$('#iledl').text(res);
}
});
$(document).on('click', '.ilerazy.minus' ,function (event) {
let dl = $('#ilerazy').val();
let dlugosc = parseInt($('#iledl').attr('data-i'));
dl--;
if(dl < 1) dl = 1;
else {
$('#ilerazy').val(dl);
dlugosc = dlugosc - startzaundl - parseInt(gruboscslupa);
$('#iledl').attr('data-i',dlugosc);
let res = (dlugosc/100).toString();
res = res.replace(".", ",");
$('#iledl').text(res);
}
});
$(document).on('click', '#uruchomkonfiguracje' ,function (event) {
ilerazy = $('#ilerazy').val();
if(ilerazy > 1) {
ilerazy--;
uruchomKonfiguracje();
} else {
ekran2();
}
});
dd = $('');
dd.append(''+TxPodajLiczbePrzesel+'
');
dd.append(''+TxDlugoscPlotu+' ca. 191 m
');
dd.append('');
if(nazwaplotu=='easy-fence'){
dd.append('
');
dd.append('');
dd.append(''+TxPrzyciecie+'
');
}
$(".kolory").prepend(dd);
dd = $('');
$(".kolory").prepend(dd);
$(".kolory .accordion-button span").each(function(nr){$(this).text(nr+1);});
$(".kolory").append('
');
$('#pasekboczny').css('background','#fff');
} // /rysuj ile kontener
//ODZNACZ
function odznaczPlot(){
$('#start-slup .redbox[transparency="0.5"]').attr('transparency','1');
if(aktywny.indexOf('-slup')!=-1) return;
$('#'+aktywny).find('.deska').find('Material').attr({diffuseColor:kolor['md'],specularColor:kolor['ms']});
$('#w0__fencekosz').remove();
$('#w0__fencetor').remove();
}
function odznacz(){
if(aktywny!=''){
//odznacz plotu
odznaczPlot();
//odznacz i ukryj arrow
$('#'+aktywny).children('group').find('Material').attr({diffuseColor:'#aaa'});
$('#'+aktywny).children('group').children('.arrow').attr('render','false');
//odznacz slup
$('#start-slup .slupredbox[transparency="0.5"]').attr('transparency','1');
if(aktywny.indexOf('-slup')==-1){
//odznacz i ukryj arrow
$('#'+aktywny+"-slup").children('group').find('Material').attr({diffuseColor:'#aaa'});
$('#'+aktywny+"-slup").children('group').children('.arrow').attr('render','false');
}
$('.oczy').hide();
aktywny = '';
}
$('.akcesoria .ba').removeClass('ba');
}
function wskazFence(event){
let activeid = '#'+aktywny.replace('-slup','');
$(activeid).click();
};
function fenceBin(){
let niko = $('#w0__fencekosz');
let wys = '205';
if (window.hasOwnProperty('extra') && extra == 'on') {
wys = '230';
}
if(!niko.length) niko = '';
$('#'+aktywny).append(niko);
var fencedl = $('#'+aktywny).attr('data-w')/2;
$('#w0__fencekosz').attr('translation','0 '+wys+' '+fencedl);
if($('#'+aktywny).attr('data-p')=='sturmanker') $('#w0__fencekosz').attr('rotation','1 1 1 2.1');
else if($('#'+aktywny).attr('data-p')=='plano') $('#w0__fencekosz').attr('rotation','1 1 1 2.1');
else if($('#'+aktywny).attr('data-p')=='easywpc-mur-235')$('#w0__fencekosz').attr('translation','0 255 '+fencedl);
else if($('#'+aktywny).attr('data-p')=='easywpc-mur-190')$('#w0__fencekosz').attr('translation','0 230 '+fencedl);
}
function pmenu(stan){
let myPc = document.getElementById('pmenu');
let iPc = bootstrap.Offcanvas.getOrCreateInstance(myPc);
iPc[stan]();
}
var myOffcanvas = document.getElementById('pmenu')
myOffcanvas.addEventListener('hide.bs.offcanvas', function () {
odznacz();
$('.tab').hide();
$('.dopasuj').show();
$('#bus2').click();
})
//schrag
function schragOpcje(event){
let rodzicSlup = $('#'+aktywny).closest('.slup');
let slup = $('#'+aktywny).siblings('.slup');
let w1 = rodzicSlup.attr('data-hr')
let w2 = slup.attr('data-hl');
let skala = $('#'+aktywny).children('.canflip').attr('scale');
if(skala == '1 1 1') skala = '1 1 -1';
else skala = '1 1 1';
$('#'+aktywny).children('.canflip').attr('scale',skala);
rodzicSlup.attr('data-hr',w2);
slup.attr('data-hl',w1);
podmienSlup2(rodzicSlup);
podmienSlup2(slup);
zapiszLS();
if(event) event.stopPropagation();
}