summary refs log tree commit diff stats
path: root/landing/assets/vendor/php-email-form
diff options
context:
space:
mode:
Diffstat (limited to 'landing/assets/vendor/php-email-form')
-rw-r--r--landing/assets/vendor/php-email-form/validate.js85
1 files changed, 85 insertions, 0 deletions
diff --git a/landing/assets/vendor/php-email-form/validate.js b/landing/assets/vendor/php-email-form/validate.js
new file mode 100644
index 0000000..64e969c
--- /dev/null
+++ b/landing/assets/vendor/php-email-form/validate.js
@@ -0,0 +1,85 @@
+/**

+* PHP Email Form Validation - v3.1

+* URL: https://bootstrapmade.com/php-email-form/

+* Author: BootstrapMade.com

+*/

+(function () {

+  "use strict";

+

+  let forms = document.querySelectorAll('.php-email-form');

+

+  forms.forEach( function(e) {

+    e.addEventListener('submit', function(event) {

+      event.preventDefault();

+

+      let thisForm = this;

+

+      let action = thisForm.getAttribute('action');

+      let recaptcha = thisForm.getAttribute('data-recaptcha-site-key');

+      

+      if( ! action ) {

+        displayError(thisForm, 'The form action property is not set!')

+        return;

+      }

+      thisForm.querySelector('.loading').classList.add('d-block');

+      thisForm.querySelector('.error-message').classList.remove('d-block');

+      thisForm.querySelector('.sent-message').classList.remove('d-block');

+

+      let formData = new FormData( thisForm );

+

+      if ( recaptcha ) {

+        if(typeof grecaptcha !== "undefined" ) {

+          grecaptcha.ready(function() {

+            try {

+              grecaptcha.execute(recaptcha, {action: 'php_email_form_submit'})

+              .then(token => {

+                formData.set('recaptcha-response', token);

+                php_email_form_submit(thisForm, action, formData);

+              })

+            } catch(error) {

+              displayError(thisForm, error)

+            }

+          });

+        } else {

+          displayError(thisForm, 'The reCaptcha javascript API url is not loaded!')

+        }

+      } else {

+        php_email_form_submit(thisForm, action, formData);

+      }

+    });

+  });

+

+  function php_email_form_submit(thisForm, action, formData) {

+    fetch(action, {

+      method: 'POST',

+      body: formData,

+      headers: {'X-Requested-With': 'XMLHttpRequest'}

+    })

+    .then(response => {

+      if( response.ok ) {

+        return response.text()

+      } else {

+        throw new Error(`${response.status} ${response.statusText} ${response.url}`); 

+      }

+    })

+    .then(data => {

+      thisForm.querySelector('.loading').classList.remove('d-block');

+      if (data.trim() == 'OK') {

+        thisForm.querySelector('.sent-message').classList.add('d-block');

+        thisForm.reset(); 

+      } else {

+        throw new Error(data ? data : 'Form submission failed and no error message returned from: ' + action); 

+      }

+    })

+    .catch((error) => {

+      displayError(thisForm, error);

+    });

+  }

+

+  function displayError(thisForm, error) {

+    thisForm.querySelector('.loading').classList.remove('d-block');

+    thisForm.querySelector('.error-message').innerHTML = error;

+    thisForm.querySelector('.error-message').classList.add('d-block');

+  }

+

+})();