var sendRequest = (function () { async function doGetRequest(url, callback){ // url = url + "&url="; function success(data){ // console.log("success"); if( callback !== null ){ callback(data); } } function failure(data){ // console.log("failure"); // console.log(data); if( callback !== null ){ callback(data); } } await fetch(url).then(response => response.json()) .then(response => success(response)) .catch(error => failure(error)); } async function doPostRequest(url, data, callback){ function success(data){ // console.log("success"); if( callback !== null ){ callback(data); } } function failure(data){ // console.log("failure"); // console.log(data); if( callback !== null ){ callback(data); } } await fetch(url,{ method:"post", body:data } ).then(response => response.json()) .then(response => success(response)) .catch(error => failure(error)); } var API = { doGet: doGetRequest, doPost: doPostRequest }; return API; })(); function processing(visible, hide_after_done = false){ var loading_box = document.getElementById("processing"); if( loading_box !== null && loading_box !== undefined ){ if(visible){ loading_box.parentElement.classList.contains("hidden") ? loading_box.parentElement.classList.remove("hidden") : null loading_box.parentElement.parentElement.classList.contains("hidden") ? loading_box.parentElement.parentElement.classList.remove("hidden") : null loading_box.classList.remove("hidden"); // document.querySelector("#upload_text").setAttribute("hidden", "true"); }else{ !loading_box.parentElement.classList.contains("hidden") ? loading_box.parentElement.classList.add("hidden") : null if( hide_after_done ){ !loading_box.parentElement.parentElement.classList.contains("hidden") ? loading_box.parentElement.parentElement.classList.add ("hidden") : null } loading_box.classList.add("hidden") } } } function loading(visible, hide_after_done = false){ var loading_box = document.getElementById("loading"); if( loading_box !== null && loading_box !== undefined ){ if(visible){ loading_box.parentElement.classList.contains("hidden") ? loading_box.parentElement.classList.remove("hidden") : null loading_box.parentElement.parentElement.classList.contains("hidden") ? loading_box.parentElement.parentElement.classList.remove("hidden") : null loading_box.classList.remove("hidden"); // document.querySelector("#upload_text").setAttribute("hidden", "true"); }else{ !loading_box.parentElement.classList.contains("hidden") ? loading_box.parentElement.classList.add("hidden") : null if( hide_after_done ){ !loading_box.parentElement.parentElement.classList.contains("hidden") ? loading_box.parentElement.parentElement.classList.add ("hidden") : null } loading_box.classList.add("hidden") } } } function validate_email(mail) { if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(mail)) { return (true) } return (false) } function subscribe(){ btn = document.querySelector("#subscribe"); let counter = 0; inpt = btn.parentElement.querySelector("input[name=add-subscribe]") btn.addEventListener("click", function(ev){ ev.preventDefault(); if( validate_email(inpt.value) ){ if( counter == 0 ){ foot = document.querySelector("footer"); script_tag = document.createElement("script") script_tag.setAttribute('src', "https://www.google.com/recaptcha/api.js?"); script_tag.setAttribute('defer', "defer"); foot.parentNode.insertBefore(script_tag, foot.nextSibling); document.querySelector(".g-recaptcha").classList.remove("d-none"); } if( counter >= 1){ if( grecaptcha.getResponse().length == 0){ set_alert("Please solve the captcha !","danger"); return false; } data = new FormData(); data.append("add-subscribe", inpt.value); sendRequest.doPost("/user-request", data, (call_data) =>{ if( call_data["success"] ){ set_alert(call_data["success"], "success") }else{ set_alert(call_data["false"], "danger") } }) } counter++; }else{ set_alert("Please insert a valid email address!", "danger") } }) } function remove_alert(){ alert_modal = document.querySelector(".alert-modal"); alert_box = alert_modal.querySelector(".tool-alert"); input_alert_box = alert_modal.querySelector(".input-alert"); alert_modal.classList.add("d-none") if (alert_box.children.length > 1){ alert_box.children[0].remove(); } if( input_alert_box !== null && input_alert_box !== undefined){ input_alert_box.classList.add("d-none"); // if (input_alert_box.children.length > 1){ // input_alert_box.children[0].remove(); // } } } async function post_form_request(url, data, callback = false){ await sendRequest.doPost(url, data, (call_data) =>{ if( !callback ){ if( call_data["success"] !== null && call_data["success"] !== undefined ){ set_alert(call_data["success"], "success") }else{ set_alert(call_data["failure"], "danger") } }else{ callback(call_data); } }) } async function set_alert(message, text_class){ processing(false); loading(false); message_span = document.createElement("span"); alert_modal = document.querySelector(".alert-modal"); alert_modal.children[0].classList.add("text-center") if( text_class !== "danger"){ alert_modal.children[0].classList.remove("alert-danger") alert_modal.children[0].classList.add("alert-" + text_class) }else{ alert_modal.children[0].classList.contains("alert-danger") ? null : alert_modal.children[0].classList.add("alert-danger") } alert_box = alert_modal.querySelector(".tool-alert") alert_modal.classList.remove("d-none"); text_class == null ? message_span.classList.add("text-dark") : message_span.classList.add("text-" + text_class) message_span.innerHTML = message; alert_box.insertBefore(message_span, alert_box.children[0]); } function $(selector, all = false){ if( !all ){ return document.querySelector(selector); }else{ return document.querySelectorAll(selector); } }