// %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
// % SWIPER
// local debugging: print the name of every executed funtion to the console
var debug_swiper_daniel = 0;
function insertSwiper(s) {
if (debug_swiper_daniel) {
console.log("%cfunction: insertSwiper", "color:white;background:lightblue");
}
// Create an empty swiper-instance and append the swiper-container to
// 'grid-element' s.
var container = document.createElement('div');
container.classList.add("swiper", "swiper-container-main");
elements[s].appendChild(container);
var swiperwrapper = document.createElement('div');
swiperwrapper.classList.add("swiper-wrapper", "swiper-wrapper-main");
swiperwrapper.s = s;
container.appendChild(swiperwrapper);
var paginationWrapper = document.createElement('div');
paginationWrapper.classList.add("swiper-pagination");
container.appendChild(paginationWrapper);
var buttonPrev = document.createElement("div");
buttonPrev.classList.add("swiper-button-prev", "swiper-button-black");
var buttonNext = document.createElement("div");
buttonNext.classList.add("swiper-button-next", "swiper-button-black");
var swiper = new Swiper(container, {
direction : 'horizontal',
pagination: {
el: paginationWrapper,
clickable: true,
},
watchOverflow: true,
spaceBetween : 0,
navigation:{
prevEl: buttonPrev,
nextEl: buttonNext
},
noSwiping: true, // this activates the noSwipingClass functionality
});
//console.log(swiper);
// the graphics slide will disable swiping (use hide box instead)
if (isTouchDevice) {
function enableSwiping(allow) {
swiper.params.noSwipingClass = allow ? null : "swiper-slide-main";
}
} else {
function enableSwiping(allow) {
buttonPrev.style.display = allow ? 'block' : 'none';
buttonNext.style.display = allow ? 'block' : 'none';
}
swiper.params.noSwipingClass = "swiper-slide-main";
container.appendChild(buttonPrev);
container.appendChild(buttonNext);
}
swiper.enableSwiping = enableSwiping;
return swiper;
}
function findSlide(s, type) {
if (debug_swiper_daniel) {
console.log("%cfunction: findSlide" , "color:white;background:lightblue");
console.log (s, type);
}
var i;
for (i = 0; i < swiper[s].slides.length; i++) {
if (swiper[s].slides[i].slideType === type) {
if (debug_swiper_daniel) {
console.log ('found slide ',i);
}
return i;
}
}
if (debug_swiper_daniel) {
console.log ('found no slide ');
}
return null;
}
function replaceSlideContent(slide, title, content) {
if (debug_swiper_daniel) {
console.log("%cfunction: replaceSlideContent", "color:white;background:lightblue");
}
titlewrapper = slide.childNodes[0].childNodes[0];
titlewrapper.innerHTML = title;
slide.replaceChild(content, slide.childNodes[1])
}
function insertSlide(s, title, type, content) {
if (debug_swiper_daniel) {
console.log("%cfunction: insertSlide", "color:white;background:lightblue");
}
// console.log("title: ",title," s: ",s);
// Inserts new group to instance s of Swiper. return inserted position
// Removed, Swiper will be removed, so there“s no need to look for swiper slides.
// Instead content will be replaced
// var isl = findSlide(s, type);
// var slide = swiper[s].slides[isl];
// if (slide) { // slide already exists
// replaceSlideContent(slide, title, content);
// return isl;
// }
var panel = document.createElement('div');
panel.classList.add("panel");
titlewrapper = document.createElement('span');
titlewrapper.innerHTML = title;
panel.appendChild(titlewrapper);
/*
if (type == "_overview" || type == "main") {
//panel.appendChild(createHomeButton(s));
} else if (type != "graphics" && type != "_inst_select" && type != "console") {
panel.appendChild(createCloseButton(s));
}
*/
/*if (type === "graphics") {
panel.appendChild(createUpdateButton(s));
}*/
var gridContainer = document.createElement('div');
// gridContainer.classList.add("swiper-slide", "swiper-slide-main");
gridContainer.classList.add("grid-container");
// Store type so it can be found easiely later.
gridContainer.slideType = type;
gridContainer.appendChild(panel);
gridContainer.appendChild(content);
// Graphics-slide is put at mostleft position.
// if (type == "graphics" || type == "_overview") {
// swiper[s].prependSlide(slide);
// swiper[s].slideTo(0);
// return 0;
// }
// swiper[s].appendSlide(slide);
// if (type == "console") {
// if (s === 3) {
// // Slide mostright swiper-instance to last position (console)
// swiper[3].slideNext();
// }
// return swiper[s].slides.length - 1;
// }
var gridelements = document.getElementsByClassName('grid-element');
gridelements[s].innerHTML = "";
gridelements[s].appendChild(gridContainer);
let pos = 0;
// if (swiper[s].slides.length > 1) {
// var consoleslide = swiper[s].slides[swiper[s].slides.length - 2];
// if (consoleslide.slideType == "console") {
// // shift Console-slide to mostright position.
// swiper[s].removeSlide(swiper[s].slides.length - 2);
// swiper[s].appendSlide(consoleslide);
// // Slide to position of new slide
// pos = swiper[s].slides.length - 2;
// } else {
// pos = swiper[s].slides.length - 1;
// }
// }
// swiper[s].slideTo(pos);
return pos;
}
function createCloseButton(s) {
if (debug_swiper_daniel) {
console.log("%cfunction: createCloseButton", "color:white;background:lightblue");
}
// Creates 'span'-element containing close-button.
var wrapper = document.createElement('span');
wrapper.onclick = function () {
swiper[s].removeSlide(swiper[s].activeIndex);
swiper[s].slidePrev();
};
var closeButton = '';
wrapper.innerHTML = closeButton;
return wrapper;
}
function createUpdateButton(s){
if (debug_swiper_daniel) {
console.log("%cfunction: createUpdateButton", "color:white;background:lightblue");
}
// Creates 'span'-element containing update-button (Should be removed later!)
var button = document.createElement('span');
button.classList.add("interactive", "toggle-updates-graphics")
button.onclick = function () {
getUpdatesGraphics = ! getUpdatesGraphics;
button.innerHTML = "updates = "+getUpdatesGraphics;
};
button.innerHTML = "updates: "+getUpdatesGraphics;
return button;
}
function defaultSlidePos(s) {
if (debug_swiper_daniel) {
console.log("%cfunction: defaultSlidePos", "color:white;background:lightblue");
}
return s < 3 ? 0 : swiper[s].slides.length-1;
}
function getSlideNames() {
if (debug_swiper_daniel) {
console.log("%cfunction: getSlideNames", "color:white;background:lightblue");
}
var names = []
for (var s=0; s 0) {
name = sw.slides[sw.activeIndex].slideType;
}
names.push();
}
for (var s=MAXBLOCK-1; s>=0; s--) {
if (names[s] != "") break;
names.pop();
}
return names;
}