Handover of the 100 five-litre containers of disinfectant from MC-Bauchemie's in-house production to the Mayor of Bot-trop, Bernd Tischler, at the company’s Am Kruppwald site. From left to right: Samuel Ata, Lukas Abermann (both THW Bottrop), Nicolaus Müller (Managing Director, MC-Bauchemie), John van Diemen (Head of Research & Devel-opment, MC-Bauchemie), Bernd Tischler (Mayor of Bottrop), Michael Schilf (Plant Manager, MC-Bauchemie) and Björn Kracht (Business Development Manager, MC-Bauchemie). MC-Bauchemie 2026
Handover of the 100 five-litre containers of disinfectant from MC-Bauchemie's in-house production to the Mayor of Bot-trop, Bernd Tischler, at the company’s Am Kruppwald site. From left to right: Samuel Ata, Lukas Abermann (both THW Bottrop), Nicolaus Müller (Managing Director, MC-Bauchemie), John van Diemen (Head of Research & Devel-opment, MC-Bauchemie), Bernd Tischler (Mayor of Bottrop), Michael Schilf (Plant Manager, MC-Bauchemie) and Björn Kracht (Business Development Manager, MC-Bauchemie).
© MC-Bauchemie 2026
With the coronavirus pandemic taking hold, the need of medical and charitable institutions for disinfectants cannot be overstated. Such vital cleansers are still scarce and there is no doubting that their procurement continues to present a real problem for front-line services. As a chemicals company, MC-Bauchemie is authorised to produce disinfectants in-house, and has already done so for its own use in recent weeks. Needless to say, compliance with hygiene and behavioural rules has been duly prioritised in the context of the company’s pandemic planning. And as part of this policy, disinfectants have been made available for MC-Bauchemie’s employees at every level throughout the entire organisation.
Donation idea came from MC-Bauchemie’s employees
It was the employees of MC-Bauchemie who put forward the donation idea to the management, with the latter immediately concurring. The team led by plant manager Michael Schilf, head of R&D John van Diemen, head of in-process control Dr. Dörte Bartel and business development manager Björn Kracht took care of the production and filling of the batch. The disinfectant was produced in the paints and coatings facility of MC-Bauchemie in accordance with the WHO formula. A new label was also developed for this special manufacture. On 9 April 2020, the MC team handed over the 100 five-litre containers of disinfectant to the Mayor of Bottrop, Bernd Tischler, who had visited the company’s Am Kruppwald site especially for this purpose.
Statement by Mayor Bernd Tischler
“As Bottrop’s Mayor, I am incredibly impressed to see how many offers of aid and assistance have been made to the city authorities and myself in this time of need. And today I am delighted to accept this donation from one of our city’s long-established company’s, MC-Bauchemie. To witness such engagement makes me exceptionally proud. It reaffirms the fact that we in Bottrop really can count on one another when the going gets tough!”
Statement by Managing Director Nicolaus Müller
“We hope that this donation will provide at least some assistance in the current crisis. Both our employees, who proposed this action, and we as a company feel closely connected with the city and the region and want to do what we can to support them in battling this pandemic.”
Tasked by the Crisis Management Team of the city of Bottrop, the Bottrop fire brigade will be responsible for coordinating the needs-based distribution of the 500 litres of disinfectant, with hospitals, nursing homes and homes for the elderly in Bottrop benefiting. The Technische Hilfswerk Bottrop (THW) (city technical and logistical support group) will be assisting the fire brigade with the transport logistics.
pageImpression = pageImpression + 1;
});
barba.init({
preventRunning: true,
timeout: 5000,
/*
for debuggin usi this parameters
debug: false,
logLevel: 'debug',
*/
/*sync: true,*/
// define a custom function that will prevent Barba
// from working on links that contains a `prevent` CSS class
prevent: ({ el, event, href }) => {
if (!el) {
return false;
}
if (el.href && el.href.includes('landingpages')) {
return true;
}
if (el.classList && el.classList.contains('prevent')) {
return true;
}
return false;
},
preventScroll: true,
scroll: false,
views: [],
transitions: [
{
name: 'header-transition',
sync: false,
from: {
custom: ({ trigger }) => {
if (trigger.classList && trigger.classList.contains('headerFlip')) {
transistionImage = trigger.getElementsByClassName("transitionImage")[0];
if (typeof transistionImage == "undefined") {
return false;
}
transisitionEffect = getRandomInt(1);
return true;
}
return false;
}
},
async leave(data) {
if (transistionImage === null) return; // can be null, return if null to not throw an error
if ( transisitionEffect == 0) {
const done = this.async();
let element = transistionImage;
let state = Flip.getState(element);
let headerImage = document.getElementById('headerImage');
headerImage.removeChild(headerImage.getElementsByTagName('img')[0]);
let headerContent = document.querySelector('.headerContent');
gsap.to(headerContent, {
opacity: 0,
});
let content = document.querySelector('.content');
gsap.to(content, {
opacity: 0,
});
headerImage.appendChild(element);
scroll(0,0);
Flip.from(state, {duration:0.9, ease: "power1.inOut", scale: true, absolute:true,});
await delay(900); // Der await Operator wird genutzt, um auf einen Promise zu warten. Er kann nur in einer async Funktion benutzt werden.
done();
}
},
enter(data) {
window.scrollTop = '0';
let content = data.next.container.querySelector('.content');
gsap.from(content, {
opacity: 0,
});
let headerContent = data.next.container.querySelector('.headerContent');
gsap.from(headerContent, {
opacity: 0,
delay: 0.5,
});
},
after(data) {
}
},
{
name: 'microsites_sliding_scroll',
sync: true,
from: {
custom: (data) => {
const { trigger, current, next } = data;
function getParent(pathname) {
const parts = pathname.split('/').filter(part => part !== '')
return parts.length > 1 ? parts[parts.length - 2] : parts[0] || null
}
if (trigger === 'popstate' || trigger === 'back' || trigger === 'forward') {
return false;
}
if(trigger.classList.contains('microsites_sliding_scroll') || trigger.classList.contains('sliding_scroll')){
return true;
}
if(current.namespace == 'template_138' && next.namespace == 'template_138') {
return getParent(current.url.path) === getParent(next.url.path)
}
return false;
}
},
to: {
namespace: [
'template_120',
'template_138',
]
},async leave({ current, next, trigger }) {
const debug = window.debug;
if (debug) console.log('Debug mode enabled');
const done = this.async();
const menuindexCurrent = +current.container.querySelector('[data-menuindex]').dataset.menuindex;
const menuindexNext = +next.container.querySelector('[data-menuindex]').dataset.menuindex;
const nextContent = next.container.querySelector('.content');
const currentContent = current.container.querySelector('.content');
let xPerc = menuindexCurrent < menuindexNext ? 100 : -100;
const navbarHeight = document.querySelector('.navbar').offsetHeight;
const pageHeight = document.querySelector('.header').offsetHeight;
const nextContentHeight = nextContent.offsetHeight;
const totalHeight = nextContentHeight + navbarHeight + pageHeight;
document.body.style.minHeight = `${totalHeight}px`;
const targetScrollY = trigger.classList.contains('microsites_sliding_scroll')
? pageHeight - navbarHeight
: pageHeight + navbarHeight;
const top = trigger.classList.contains('microsites_sliding_scroll') ? '0px' : '116px';
gsap.set(next.container, {
xPercent: xPerc,
position: 'absolute',
top: top,
left: 0,
display: 'block'
});
const tl = gsap.timeline({
onComplete: () => {
gsap.set(current.container, { display: "none" });
gsap.set(next.container, { clearProps: 'position,top,left,xPercent' });
gsap.set(nextContent, { clearProps: 'xPercent' });
document.body.style.minHeight = '';
done();
}
});
tl.to(currentContent, {
xPercent: -xPerc,
duration: debug ? 5 : 0.5,
ease: "power1.inOut",
}, 0);
tl.to(nextContent, {
xPercent: -xPerc,
duration: debug ? 5 : 0.5,
ease: "power1.inOut"
}, 0);
tl.to(window, {
scrollTo: { y: targetScrollY },
duration: debug ? 5 : 0.5,
ease: "power1.inOut"
}, 0);
},
enter({ next }) {
gsap.from(next.container, {
opacity: 0,
});
}
},
{
name: 'microsites_sliding',
sync: true,
from: {
custom: ({ trigger }) => {
if (trigger === 'popstate' || trigger === 'back' || trigger === 'forward') {
return false;
}
if(trigger.classList.contains('microsites_sliding')){
return true;
}
return false;
}
},
to: {
namespace: [
'template_120',
]
},
async leave({current, next}) {
const done = this.async();
const tl = gsap.timeline({onComplete: ()=>{
gsap.set(next.container, {clearProps: 'all'})
gsap.set(next.container.querySelector('.content'), {clearProps: 'all'})
}})
const currentContent = current.container.querySelector('.content')
const nextContent = next.container.querySelector('.content')
const currentH1 = document.querySelector('.currentPagetitle')
const currentIntrotext = document.querySelector('.currentIntrotext')
const nextH1 = next.container.querySelector('.pageTitle')
const nextIntrotext = next.container.querySelector('.introtext')
gsap.set(next.container, { xPercent: 100, position: 'absolute', top: 0, left: 0 })
tl.to(currentContent, {xPercent: -100, opacity: 0, duration: 1, ease: "power1.inOut", onComplete: () => {
gsap.set(current.container, { display: "none" });
}}, 0)
.to([currentH1, currentIntrotext], { opacity: 0, duration: 0.5, ease: "power1.inOut", onComplete: () => {
currentH1.innerText = nextH1.innerText;
currentIntrotext.innerText = nextIntrotext.innerText;
}}, 0)
.to([currentH1, currentIntrotext], { opacity: 1, duration: 0.5, ease: "power1.inOut" }, 0.5)
.to(nextContent, {xPercent: -100, duration: 1, ease: "power1.inOut"}, 0)
await delay(1000);
done();
},
enter({next}){
gsap.from(next.container, {
opacity: 0,
});
}
},
{
name: 'default',
sync: false,
async leave(data) {
const done = this.async();
gsap.to(data.current.container, {
opacity: 0,
duration: 0.5,
});
await delay(500); // Der await Operator wird genutzt, um auf einen Promise zu warten. Er kann nur in einer async Funktion benutzt werden.
scroll(0,0);
done();
},
enter(data) {
window.scrollTop = '0';
gsap.from(data.next.container, {
opacity: 0,
duration: 0.5,
});
},
after(data) {
// START: Ankur - 15062023 - For Scroll Position History
if(scrollHistory[data.next.url.href]) {
let scroll = scrollHistory[data.next.url.href];
window.scrollTo({top: scroll.y, behavior: 'instant'});
}
// END: Ankur
}
},
{
name: 'self',
enter() {
},
}
]
});
});