// Function to clone and insert a section function cloneAndInsertSectionBeforeDropdown2() { // Clone the first .dropdown1-container const originalSection = document.querySelector('.dropdown1-container'); const clonedSection = originalSection.cloneNode(true); // Reset the values of the cloned inputs if necessary const inputs = clonedSection.querySelectorAll("input, select"); inputs.forEach((input) => { if (input.tagName.toLowerCase() === 'select') { input.selectedIndex = 0; // Set the default option (----------------) for dropdowns } else if (input.tagName.toLowerCase() === 'input') { input.value = ""; // Clear input fields } }); // Add a unique class to the cloned section clonedSection.classList.add('cloned-section'); // Find the .dropdown2-container const dropdown2Container = document.querySelector('.dropdown2-container'); if (dropdown2Container) { // Insert the cloned section before the .dropdown2-container dropdown2Container.insertAdjacentElement('beforebegin', clonedSection); } else { console.error('.dropdown2-container not found.'); } // Reinitialize event listeners for the new section if needed initializeSectionControls(); } // Function to initialize event listeners for sections function initializeSectionControls() { // Event delegation for dynamic dropdowns document.body.addEventListener('change', function(event) { if (event.target.matches('select[name="dropdown1"]')) { toggleSecondDropdown(event.target); } else if (event.target.matches('select[name="dropdown3"]')) { showInputField(event.target); } else if (event.target.matches('select[name="dropdown2"]')) { handleActionChange(event.target); } }); // Add event listeners for the add and remove images const addImages = document.querySelectorAll('.add'); addImages.forEach((img) => { img.addEventListener('click', cloneAndInsertSectionBeforeDropdown2); }); const removeImages = document.querySelectorAll('.remove'); removeImages.forEach((img) => { img.addEventListener('click', removeSection); }); } // Ensure the dropdowns and inputs in cloned sections are dynamic function toggleSecondDropdown(selectElement) { var secondDropdown = selectElement.closest('.dropdown1-container').querySelector('#second-dropdown'); if (selectElement.value !== '#') { secondDropdown.style.display = 'block'; } else { secondDropdown.style.display = 'none'; selectElement.closest('.dropdown1-container').querySelector('#value-input-group').style.display = 'none'; // Hide value input if condition is reset } } function showInputField(selectElement) { var valueInputGroup = selectElement.closest('.dropdown1-container').querySelector('#value-input-group'); if (selectElement.value !== '#') { valueInputGroup.style.display = 'block'; } else { valueInputGroup.style.display = 'none'; } } function handleActionChange(selectElement) { var container = selectElement.closest('.dropdown2-container'); var roleDropdown = container.querySelector('#role-dropdown'); var accessDurationDropdown = container.querySelector('#access-duration-dropdown'); var unregistrationDate = container.querySelector('#unregistration-date'); // Hide all dropdowns first roleDropdown.style.display = 'none'; accessDurationDropdown.style.display = 'none'; unregistrationDate.style.display = 'none'; // Show relevant dropdown based on selection switch (selectElement.value) { case 'A': roleDropdown.style.display = 'block'; break; case 'B': accessDurationDropdown.style.display = 'block'; break; case 'C': unregistrationDate.style.display = 'block'; break; } } // Initialize event listeners for existing elements on page load document.addEventListener('DOMContentLoaded', () => { initializeSectionControls(); }); // Function to remove a section function removeSection(event) { // Only remove sections with the 'cloned-section' class const currentSection = event.target.closest('.cloned-section'); if (currentSection) { currentSection.remove(); } } // Initialize event listeners for existing elements on page load document.addEventListener('DOMContentLoaded', () => { initializeSectionControls(); }); //-------------------------------------------SECOND SECTION STARTS----------------------------------------------// // Cloning function function cloneAndInsertSectionBeforeImage(cloneBtn) { // Find the closest .dropdown2-container of the clicked clone button const originalSection = cloneBtn.closest('.dropdown2-container'); const clonedSection = originalSection.cloneNode(true); // Reset the values of the cloned inputs const inputs = clonedSection.querySelectorAll("input, select"); inputs.forEach((input) => { if (input.tagName.toLowerCase() === 'select') { input.selectedIndex = 0; // Set dropdown to default value } else if (input.tagName.toLowerCase() === 'input') { input.value = ""; // Clear input fields } }); // Add a unique class to the cloned section clonedSection.classList.add('cloned-section'); // Reinitialize controls for the new cloned section initializeSectionControlsForCloned(clonedSection); // Find the .image container const imageContainer = document.querySelector('.image'); if (imageContainer) { // Insert the cloned section before the .image container imageContainer.insertAdjacentElement('beforebegin', clonedSection); } else { console.error('.image container not found.'); } } // Removal function function removeClonedSection(removeBtn) { const sectionToRemove = removeBtn.closest('.dropdown2-container'); // Only remove if it is a cloned section (i.e., not the original one) if (sectionToRemove.classList.contains('cloned-section')) { sectionToRemove.remove(); } else { alert("Cannot remove the original section!"); } } // Initialize event listeners for dynamically cloned sections function initializeSectionControlsForCloned(clonedSection) { // Add click event listener to the clone image in the cloned section const cloneBtn = clonedSection.querySelector('.clone'); cloneBtn.addEventListener('click', function () { cloneAndInsertSectionBeforeImage(cloneBtn); }); // Add click event listener to the declone image in the cloned section const removeBtn = clonedSection.querySelector('.declone'); removeBtn.addEventListener('click', function () { removeClonedSection(removeBtn); }); } // Initial setup for original sections document.addEventListener('DOMContentLoaded', function () { // Add click event listener to clone images in the original sections document.querySelectorAll('.clone').forEach(cloneBtn => { cloneBtn.addEventListener('click', function () { cloneAndInsertSectionBeforeImage(cloneBtn); }); }); // Add click event listener to declone images in the original sections document.querySelectorAll('.declone').forEach(removeBtn => { removeBtn.addEventListener('click', function () { removeClonedSection(removeBtn); }); }); });