text: "use strict";
  
  // Class definition
  var KTModalCreateProjectSettings = function () {
  	// Variables
  	var nextButton;
  	var previousButton;
  	var validator;
  	var form;
  	var stepper;
  
  	// Private functions
  	var initForm = function() {
  		// Project logo
  		// For more info about Dropzone plugin visit:  https://www.dropzonejs.com/#usage
  		var myDropzone = new Dropzone("#kt_modal_create_project_settings_logo", { 
  			url: "https://keenthemes.com/scripts/void.php", // Set the url for your upload script location
              paramName: "file", // The name that will be used to transfer the file
              maxFiles: 10,
              maxFilesize: 10, // MB
              addRemoveLinks: true,
              accept: function(file, done) {
                  if (file.name == "justinbieber.jpg") {
                      done("Naha, you don't.");
                  } else {
                      done();
                  }
              }
  		});  
  
  		// Due date. For more info, please visit the official plugin site: https://flatpickr.js.org/
  		var releaseDate = $(form.querySelector('[name="settings_release_date"]'));
  		releaseDate.flatpickr({
  			enableTime: true,
  			dateFormat: "d, M Y, H:i",
  		});
  
  		// Expiry year. For more info, plase visit the official plugin site: https://select2.org/
          $(form.querySelector('[name="settings_customer"]')).on('change', function() {
              // Revalidate the field when an option is chosen
              validator.revalidateField('settings_customer');
          });
  	}
  
  	var initValidation = function() {
  		// Init form validation rules. For more info check the FormValidation plugin's official documentation:https://formvalidation.io/
  		validator = FormValidation.formValidation(
  			form,
  			{
  				fields: {
  					'settings_name': {
  						validators: {
  							notEmpty: {
  								message: 'Project name is required'
  							}
  						}
  					},
  					'settings_customer': {
  						validators: {
  							notEmpty: {
  								message: 'Customer is required'
  							}
  						}
  					},
  					'settings_description': {
  						validators: {
  							notEmpty: {
  								message: 'Description is required'
  							}
  						}
  					},
  					'settings_release_date': {
  						validators: {
  							notEmpty: {
  								message: 'Release date is required'
  							}
  						}
  					},
  					'settings_notifications[]': {
  						validators: {
  							notEmpty: {
  								message: 'Notifications are required'
  							}
  						}
  					}
  				},
  				
  				plugins: {
  					trigger: new FormValidation.plugins.Trigger(),
  					bootstrap: new FormValidation.plugins.Bootstrap5({
  						rowSelector: '.fv-row',
                          eleInvalidClass: '',
                          eleValidClass: ''
  					})
  				}
  			}
  		);
  	}
  
  	var handleForm = function() {
  		nextButton.addEventListener('click', function (e) {
  			// Prevent default button action
  			e.preventDefault();
  
  			// Disable button to avoid multiple click 
  			nextButton.disabled = true;
  
  			// Validate form before submit
  			if (validator) {
  				validator.validate().then(function (status) {
  					console.log('validated!');
  
  					if (status == 'Valid') {
  						// Show loading indication
  						nextButton.setAttribute('data-kt-indicator', 'on');
  
  						// Simulate form submission
  						setTimeout(function() {
  							// Simulate form submission
  							nextButton.removeAttribute('data-kt-indicator');
  
  							// Enable button
  							nextButton.disabled = false;
  							
  							// Go to next step
  							stepper.goNext();
  						}, 1500);   						
  					} else {
  						// Enable button
  						nextButton.disabled = false;
  
  						// Show popup warning. For more info check the plugin's official documentation: https://sweetalert2.github.io/
  						Swal.fire({
  							text: "Sorry, looks like there are some errors detected, please try again.",
  							icon: "error",
  							buttonsStyling: false,
  							confirmButtonText: "Ok, got it!",
  							customClass: {
  								confirmButton: "btn btn-primary"
  							}
  						});
  					}
  				});
  			}			
  		});
  
  		previousButton.addEventListener('click', function () {
  			// Go to previous step
  			stepper.goPrevious();
  		});
  	}
  
  	return {
  		// Public functions
  		init: function () {
  			form = KTModalCreateProject.getForm();
  			stepper = KTModalCreateProject.getStepperObj();
  			nextButton = KTModalCreateProject.getStepper().querySelector('[data-kt-element="settings-next"]');
  			previousButton = KTModalCreateProject.getStepper().querySelector('[data-kt-element="settings-previous"]');
  
  			initForm();
  			initValidation();
  			handleForm();
  		}
  	};
  }();
  
  // Webpack support
  if (typeof module !== 'undefined' && typeof module.exports !== 'undefined') {
  	window.KTModalCreateProjectSettings = module.exports = KTModalCreateProjectSettings;
  }
  