!!!UPOZORNĚÍ!!! Z technických důvodů budou všechny objednávky vytvořené 13.04. - 19.04.2026 odeslány až 20.04.2026. Děkujeme za pochopení!
Blog
20.03.2025
3D EXPO BRATISLAVA 24. – 25. října 2025
Připravte se na jedinečnou příležitost pro všechny nadšence 3D tisku a technologií! 3D EXPO BRATISLAVA je místem, kde se setkají inovace a kreativita.... číst celé
20.03.2025
10. 5. – 11. 5. 2025 Maker Faire Prague 2025
Celosvětová přehlídka kreativity, tvořivosti a inovací přichází do Prahy. Nevšední projekty a experimenty z oblastí nových technologií, řemesel, 3D... číst celé
19.03.2025 3D tiskárny
Komplexní Problematika 3D Tisku: Od Tiskáren po Filamenty
3D tisk se stal jednou z nejvýznamnějších technologií moderní doby, přinášející revoluci do různých odvětví, od průmyslové výroby po osobní projekty. ... číst celé
Zobrazit všechny články
Nepropásněte novinky, akce a slevy!

Můžete se kdykoli odhlásit. Zasíláme jednou za 14 dní.

3D TISK NA ZAKÁZKU KALKULAČKA

// File handling update for multiple files
const fileInput = document.getElementById('file-input');
const fileList = document.getElementById('file-list');
const errorMessage = document.getElementById('error-message');
const uploadArea = document.getElementById('file-upload');
const fileProcessingLoader = document.getElementById('file-processing-loader');
const processingMessage = document.getElementById('processing-message');

let files = [];
const maxSingleFileSize = 200 * 1024 * 1024; // 200 MB for single file
const maxFileSize = 25 * 1024 * 1024; // 25 MB per file for multiple files
const maxFiles = 10; // Maximum 10 files
const allowedFileTypes = ['.stl', '.stp', '.step'];

// Update file input to allow multiple files
fileInput.setAttribute('multiple', 'multiple');

// Update the file upload text
document.querySelector('.upload-info').textContent = 'Pouze formáty .STL, .STP, .STEP';
const sizeInfoElement = document.createElement('div');
sizeInfoElement.className = 'upload-info';
sizeInfoElement.textContent = 'Max. 10 souborů, každý do 25 MB nebo jeden soubor do 200 MB';
document.querySelector('.upload-info').after(sizeInfoElement);

// Handle files function update
function handleFiles(newFiles) {
    errorMessage.style.display = 'none';
    
    if (newFiles.length === 0) return;
    
    // Check if it's a single large file (up to 200MB) or multiple files (up to 25MB each)
    if (newFiles.length === 1) {
        const file = newFiles[0];
        const fileExtension = '.' + file.name.split('.').pop().toLowerCase();
        
        // Check file type
        if (!allowedFileTypes.includes(fileExtension)) {
            errorMessage.textContent = `Soubor "${file.name}" má nepodporovaný formát. Pouze formáty STL, STP, STEP jsou podporovány.`;
            errorMessage.style.display = 'block';
            return;
        }
        
        // Check file size for single file
        if (file.size > maxSingleFileSize) {
            errorMessage.textContent = `Soubor "${file.name}" je příliš velký. Maximální velikost jednoho souboru je 200 MB.`;
            errorMessage.style.display = 'block';
            return;
        }
        
        // Add file
        files = [file]; // Replace existing files with the single file
        fileList.innerHTML = '';
        addFileToList(file);
    } else {
        // Multiple files scenario
        if (files.length + newFiles.length > maxFiles) {
            errorMessage.textContent = `Můžete nahrát maximálně ${maxFiles} souborů.`;
            errorMessage.style.display = 'block';
            return;
        }
        
        // Check each file
        for (let i = 0; i < newFiles.length; i++) {
            const file = newFiles[i];
            const fileExtension = '.' + file.name.split('.').pop().toLowerCase();
            
            // Check file type
            if (!allowedFileTypes.includes(fileExtension)) {
                errorMessage.textContent = `Soubor "${file.name}" má nepodporovaný formát. Pouze formáty STL, STP, STEP jsou podporovány.`;
                errorMessage.style.display = 'block';
                continue;
            }
            
            // Check file size for multiple files
            if (file.size > maxFileSize) {
                errorMessage.textContent = `Soubor "${file.name}" je příliš velký. Při nahrávání více souborů je maximální velikost 25 MB na soubor.`;
                errorMessage.style.display = 'block';
                continue;
            }
            
            // Add file
            files.push(file);
            addFileToList(file);
        }
    }
    
    // Simulation of file processing
    if (files.length > 0) {
        fileProcessingLoader.style.display = 'block';
        processingMessage.style.display = 'block';
        
        setTimeout(() => {
            // Hide the print volume field in step 3
            const printVolumeElement = document.getElementById('print-volume');
            if (printVolumeElement) {
                printVolumeElement.parentElement.style.display = 'none';
            }
            
            fileProcessingLoader.style.display = 'none';
            processingMessage.style.display = 'none';
        }, 2000);
    }
}

// Update to-step-2 function to fix navigation issue
document.getElementById('to-step-2').addEventListener('click', function() {
    // Form validation for first step
    const firstName = document.getElementById('first-name').value;
    const lastName = document.getElementById('last-name').value;
    const phone = document.getElementById('phone').value;
    const email = document.getElementById('email').value;
    
    if (!firstName || !lastName || !phone || !email) {
        alert('Vyplňte prosím všechny povinné údaje označené *');
        return;
    }
    
    // Email validation
    const emailRegex = /[\s@]+@[\s@]+\.[\s@]+$/;
    if (!emailRegex.test(email)) {
        alert('Zadejte prosím platný e-mail');
        return;
    }
    
    // Proceed to next step - fix navigation issue
    document.getElementById('step-1').style.display = 'none';
    document.getElementById('step-2').style.display = 'block';
    document.getElementById('step-1-indicator').classList.remove('active');
    document.getElementById('step-2-indicator').classList.add('active');
});

// Update to-step-3 validation to require at least one file
document.getElementById('to-step-3').addEventListener('click', function() {
    if (files.length === 0) {
        alert('Nahrajte prosím alespoň jeden soubor pro 3D tisk');
        return;
    }
    
    document.getElementById('step-2').style.display = 'none';
    document.getElementById('step-3').style.display = 'block';
    document.getElementById('step-2-indicator').classList.remove('active');
    document.getElementById('step-3-indicator').classList.add('active');
});

Novinky z našeho blogu

3D EXPO BRATISLAVA 24. – 25. října 2025
20.03.2025
3D EXPO BRATISLAVA 24. – 25. října 2025
Připravte se na jedinečnou příležitost pro všechny nadšence 3D tisku a technologií! 3D EXPO BRATISLAVA je místem, kde se setkají inovace a kreativita.... číst celé
10. 5. – 11. 5. 2025 Maker Faire Prague 2025
20.03.2025
10. 5. – 11. 5. 2025 Maker Faire Prague 2025
Celosvětová přehlídka kreativity, tvořivosti a inovací přichází do Prahy. Nevšední projekty a experimenty z oblastí nových technologií, řemesel, 3D... číst celé
Komplexní Problematika 3D Tisku: Od Tiskáren po Filamenty
19.03.2025 3D tiskárny
Komplexní Problematika 3D Tisku: Od Tiskáren po Filamenty
3D tisk se stal jednou z nejvýznamnějších technologií moderní doby, přinášející revoluci do různých odvětví, od průmyslové výroby po osobní projekty. ... číst celé
Nepropásněte novinky, akce a slevy!
Můžete se kdykoli odhlásit. Zasíláme jednou za 14 dní.
Copyright © Euliquid s.r.o. 2012 - 2025. Všechna práva vyhrazena.
Vytvořeno na Eshop-rychle.czEshop-rychle.cz