Spare parts
Service and support
New: Authorised Service Partner
Atlas Incinerators is proud to announce our new global service offering in partnership with Global Boiler Services – an official Atlas-authorised service provider and member of G&O Maritime Group .
This collaboration ensures that vessel owners and operators now benefit from worldwide access to incinerator service, delivered by technicians trained and authorised by Atlas Incinerators.
Our service team is here to help
Sole supplier of spare parts
We are the sole supplier of original spare parts to incinerators supplied by ATLAS, Hyundai-ATLAS, ASI, ASWI VESTA and MAXI.
Technical service
We have a team of technical experts ready to travel to you when you need service.
If you contact us, we will assist with getting the right people to you as soon as possible.
Remote support
Our inhouse team is experienced working with our incinerators. If you have any questions or need assistance for trouble shooting from a distance, you are always welcome to call.
Service agreements
It is our first priority to support our customers. With service agreements, we formalise our collaboration and ensure that we’re always there for you.
Longer lasting system with certified refractory
One of the most essential parts of an incinerator is the refractory, and we are known to have the best and longest lasting refractory materials on the market.
Service and replacement of the refractory is key for the incinerator life time, and it is important that this is done by Atlas Incinerators to keep up the high quality. We have seen examples where customers try to replace the refractory by themselves or a third party with the consequence that the incinerator does not last long hereafter.
Always contact Atlas Incinerators for refractory and other spare parts.
Agents
We have a wide network of agents globally, all with knowledge about our products and ready to help you.
Service partners
We have local service partners strategically placed around the world. they are certified to help you with service on your Atlas products.
(function () {
const SPARE_PARTS_TEXT = ‘spareparts’;
function textContainsIMO(txt){return (txt||”).toLowerCase().includes(‘imo’);}
function isSparePartsSelected(selectEl){
const val = String(selectEl.value||selectEl.options[selectEl.selectedIndex]?.text||”)
.trim().toLowerCase();
return val === SPARE_PARTS_TEXT;
}
// Find “feltets række”
function nearestRow(el){
return el.closest(‘.form-row, ._form_element, .ac-field, .field, .row, ._field-wrapper, .form-group’) || el.parentElement;
}
// Find label koblet til et input (uanset placering)
function findLinkedLabel(form, input){
const id = input.id && input.id.trim();
if (!id) return null;
const direct = form.querySelector(`label[for=”${CSS.escape(id)}”]`);
if (direct) return direct;
// Evt. wrapper-
const wrap = input.closest(‘label’);
if (wrap) return wrap;
// Sidder der et label i samme “row”?
const row = nearestRow(input);
if (row) {
const inRow = row.querySelector(‘label’);
if (inRow) return inRow;
}
return null;
}
// Find en evt. overskrift/titel i samme sektion som feltet
function findHeadingNear(input){
const row = nearestRow(input);
if (!row) return null;
// Tjek typiske klassere for formular-overskrifter/titler
return row.querySelector(‘legend, .label, .control-label, ._form-label, .field > .label’) ||
row.previousElementSibling && /label|legend|title|heading/i.test(row.previousElementSibling.className||”) ? row.previousElementSibling : null;
}
function ensureError(el,msg){
const r=nearestRow(el); if(!r) return;
let e=r.querySelector(‘.imo-error’);
if(!e){ e=document.createElement(‘div’); e.className=’imo-error’; e.style.fontSize=’0.9rem’; e.style.marginTop=’0.25rem’; e.style.color=’#d00′; r.appendChild(e); }
e.textContent=msg;
}
function clearError(el){
const r=nearestRow(el); const e=r&&r.querySelector(‘.imo-error’); if(e) e.remove();
}
function parseIMODigits(raw){const m=String(raw||”).trim().match(/^(?:IMO\s*)?(\d{7})$/i); return m?m[1]:null;}
function validIMONumber(d){if(!d) return false; const a=d.split(”).map(Number); if(a.length!==7||a.some(n=>Number.isNaN(n))) return false; const w=[7,6,5,4,3,2,1]; const s=a.reduce((x,n,i)=>x+n*w[i],0); return s%10===0;}
function findSubjectSelect(form){
const custom=form.getAttribute(‘data-ac-subject’); if(custom) return form.querySelector(custom);
for(const sel of form.querySelectorAll(‘select’)){
const has=[…sel.options].some(opt => String(opt.text||opt.value).trim().toLowerCase()===SPARE_PARTS_TEXT);
if(has) return sel;
}
return null;
}
function findIMOInput(form){
const custom=form.getAttribute(‘data-ac-imo’); if(custom) return form.querySelector(custom);
const cand=[…form.querySelectorAll(‘input[type=”text”], input[type=”tel”], input[type=”number”]’)];
for(const el of cand){
const ph=el.getAttribute(‘placeholder’)||”; if(textContainsIMO(ph)) return el;
const id=el.id&&el.id.trim(); const lab=id?form.querySelector(`label[for=”${CSS.escape(id)}”]`):null; if(lab&&textContainsIMO(lab.textContent)) return el;
const wrap=el.closest(‘label’); if(wrap&&textContainsIMO(wrap.textContent)) return el;
const row=nearestRow(el); const inRow=row&&row.querySelector(‘label’); if(inRow&&textContainsIMO(inRow.textContent)) return el;
}
return null;
}
// NYT: skjul både felt-row, label og evt. overskrift
function setBlockVisibility(form, input, visible){
const rowSel = form.getAttribute(‘data-ac-imo-row’); // valgfrit: specifik wrapper at skjule
const row = rowSel ? form.querySelector(rowSel) : nearestRow(input);
const label = findLinkedLabel(form, input);
const heading = findHeadingNear(input);
const display = visible ? ” : ‘none’;
if (row) row.style.display = display;
if (label && !row?.contains(label)) label.style.display = display; // skjul label hvis den står udenfor row
if (heading && !row?.contains(heading)) heading.style.display = display;
if (!visible) clearError(input);
}
function updateIMOVisibility(form, subjectEl, imoEl){
const show = isSparePartsSelected(subjectEl);
setBlockVisibility(form, imoEl, show);
if (show){
imoEl.setAttribute(‘required’,’required’);
imoEl.setAttribute(‘inputmode’,’numeric’);
imoEl.setAttribute(‘pattern’,'(?:IMO\\s*)?\\d{7}’);
if(!imoEl.placeholder) imoEl.placeholder=’IMO 1234567′;
} else {
imoEl.removeAttribute(‘required’);
imoEl.removeAttribute(‘pattern’);
}
}
function attachToForm(form){
// Begræns til AC-forms
const isAC=form.classList.contains(‘_form’) || /activehosted\.com|activecampaign/i.test(form.getAttribute(‘action’)||”);
if(!isAC) return;
const subjectEl=findSubjectSelect(form);
const imoEl=findIMOInput(form);
if(!subjectEl||!imoEl) return;
updateIMOVisibility(form, subjectEl, imoEl);
subjectEl.addEventListener(‘change’,()=>updateIMOVisibility(form, subjectEl, imoEl));
imoEl.addEventListener(‘input’,()=>clearError(imoEl));
form.addEventListener(‘submit’,function(e){
if(!isSparePartsSelected(subjectEl)) return;
const digits=parseIMODigits(imoEl.value);
if(!validIMONumber(digits)){
e.preventDefault();
ensureError(imoEl,’Angiv et gyldigt IMO-nummer på 7 cifre (fx “IMO 1234567”).’);
imoEl.focus();
} else {
clearError(imoEl);
}
});
}
function scan(){document.querySelectorAll(‘form’).forEach(attachToForm);}
if(document.readyState===’loading’){document.addEventListener(‘DOMContentLoaded’,scan);} else {scan();}
const mo=new MutationObserver(()=>scan());
mo.observe(document.documentElement,{childList:true,subtree:true});
})();