Můžete se kdykoli odhlásit. Zasíláme jednou za 14 dní.
// 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');
});










